Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CSVCSV
とちぎRuby会議07
2017-08-26
とみたまさひろ
1
Ruby歴 約20年
(本日の老害枠の一人)
得意分野: 文字化け
Software Design 2016年12月号
「Rubyと文字コード」/「MySQLと文字コード」
Software Design 2017年7月号
「MySQL[SEL...
その昔RubyのCSVは遅かった
3
みんな大好き KEN_ALL.CSV
% ruby -v -rcsv -e 'CSV.foreach("KEN_ALL.CSV"){}'
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]...
LightCsvってのを作ったんですよ
速い!
% ruby -v -rlightcsv -e 'LightCsv.foreach("KEN_ALL.CSV"){}'
ruby 1.8.7 (2013-06-27 patchlevel 374)...
でも最近は普通に速い
LightCsvはお役御免
% ruby -v -Ecp932 -rcsv -e 'CSV.foreach("KEN_ALL.CSV"){}'
ruby 2.4.0p0 (2016-12-24 revision 57164...
でも一つ問題が
7
nilを返しやがる!
require 'csv'
'a,"",b,,c'.parse_csv
#=> ["a", "", "b", nil, "c"]
8
考慮しないとぬるぽ
require 'csv'
'a,"",b,,c'.parse_csv.each do |col|
p col.upcase
end
"A"
""
"B"
a.rb:4:in `block in <main>':
undef...
誰得 �������
10
ということでnilを返さないCSVライブラリを作った
11
RightCSVRightCSV
12
require 'rightcsv'
'a,"",b,,c'.parse_csv
#=> ["a", "", "b", "", "c"]
'a,"",b,,c'.parse_csv.map(&:upcase)
#=> ["A", "", "B"...
こんなの使わなくてもみんなが幸せになりますように
14
以上以上
15
Upcoming SlideShare
Loading in …5
×

CSV

2,213 views

Published on

とちぎRuby会議07 LT その1

Published in: Technology
  • Be the first to comment

CSV

  1. 1. CSVCSV とちぎRuby会議07 2017-08-26 とみたまさひろ 1
  2. 2. Ruby歴 約20年 (本日の老害枠の一人) 得意分野: 文字化け Software Design 2016年12月号 「Rubyと文字コード」/「MySQLと文字コード」 Software Design 2017年7月号 「MySQL[SELECT文]集中講座」 今日は長野から5時間かけてきました (思ってたより近かった) 2
  3. 3. その昔RubyのCSVは遅かった 3
  4. 4. みんな大好き KEN_ALL.CSV % ruby -v -rcsv -e 'CSV.foreach("KEN_ALL.CSV"){}' ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux] real 0m33.732s user 0m33.712s sys 0m0.016s 4
  5. 5. LightCsvってのを作ったんですよ 速い! % ruby -v -rlightcsv -e 'LightCsv.foreach("KEN_ALL.CSV"){}' ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux] real 0m3.336s user 0m3.312s sys 0m0.020s 5
  6. 6. でも最近は普通に速い LightCsvはお役御免 % ruby -v -Ecp932 -rcsv -e 'CSV.foreach("KEN_ALL.CSV"){}' ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux] real 0m2.869s user 0m2.836s sys 0m0.020s 6
  7. 7. でも一つ問題が 7
  8. 8. nilを返しやがる! require 'csv' 'a,"",b,,c'.parse_csv #=> ["a", "", "b", nil, "c"] 8
  9. 9. 考慮しないとぬるぽ require 'csv' 'a,"",b,,c'.parse_csv.each do |col| p col.upcase end "A" "" "B" a.rb:4:in `block in <main>': undefined method `upcase' for nil:NilClass (NoMethodError) 9
  10. 10. 誰得 ������� 10
  11. 11. ということでnilを返さないCSVライブラリを作った 11
  12. 12. RightCSVRightCSV 12
  13. 13. require 'rightcsv' 'a,"",b,,c'.parse_csv #=> ["a", "", "b", "", "c"] 'a,"",b,,c'.parse_csv.map(&:upcase) #=> ["A", "", "B", "", "C"] 13
  14. 14. こんなの使わなくてもみんなが幸せになりますように 14
  15. 15. 以上以上 15

×