Csv
-
Upload
nicolas-ledez -
Category
Technology
-
view
156 -
download
0
description
Transcript of Csv
![Page 1: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/1.jpg)
TOI AUSSI TRAITE DU CSV AVEC TON RUBY
Un retour d'expérience
![Page 2: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/2.jpg)
NICOLAS LEDEZ
Orange Business Services / IT&L@bs
DevCamp Rennes
Rennes On Rails
Rennes DevOps
Graphotec Cloud
![Page 3: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/3.jpg)
J'AI :
Un fichier CSV de 600 lignes
Une cible de 100 fichiers XML
![Page 4: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/4.jpg)
CHOIX DES ARMES
À la main
Macro VBA Excel
Perl
Python
Ruby
![Page 5: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/5.jpg)
TDD 1/4
![Page 6: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/6.jpg)
TDD 2/4
![Page 7: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/7.jpg)
TDD 3/4
![Page 8: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/8.jpg)
TDD 4/4
![Page 9: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/9.jpg)
POUR COMMENCER
def parse_csv(filename) @list = {}
lines = File.open(filename).readlines lines[1..-1].each { |line| (fullname, login) = line.chomp.split(";")
![Page 10: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/10.jpg)
MAIS...
def parse_csv(filename) @list = {}
lines = File.open(filename).readlines lines[1..-1].each { |line| (firstname, lastname, login) = line.chomp.split(";")
![Page 11: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/11.jpg)
1 AN PLUS TARD
+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Libraries | 446 | 356 | 6 | 19 | 3 | 16 || spec/vsabuilder | 484 | 388 | 0 | 38 | 0 | 8 |+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 356 Test LOC: 388 Code to Test Ratio: 1:1.1
![Page 12: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/12.jpg)
L'AGILITÉC'est aussi savoir tout casser
![Page 13: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/13.jpg)
UTILISER UNE LIB !
def parse(csv_filename, key) key_symbol = key.to_sym CSV.foreach(csv_filename, :col_sep =>';', :headers =>
true, :header_converters => :symbol) do |line| current_key = line[key_symbol] @content[current_key] = line endend
![Page 14: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/14.jpg)
3 JOURS APRÈS
+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Libraries | 58 | 48 | 2 | 7 | 3 | 4 || spec/lib | 157 | 122 | 0 | 6 | 0 | 18 |+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 48 Test LOC: 122 Code to Test Ratio: 1:2.5
Rappel :+----------------------+-------+-------+---------+---------+-----+-------+| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |+----------------------+-------+-------+---------+---------+-----+-------+| Libraries | 446 | 356 | 6 | 19 | 3 | 16 || spec/vsabuilder | 484 | 388 | 0 | 38 | 0 | 8 |+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 356 Test LOC: 388 Code to Test Ratio: 1:1.1
![Page 15: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/15.jpg)
SOURCES
https://github.com/nledez/csv2other
![Page 16: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/16.jpg)
CONCLUSION
![Page 17: Csv](https://reader033.fdocuments.net/reader033/viewer/2022061119/546a7bd8af79597f788b64b6/html5/thumbnails/17.jpg)
@NLEDEZ