Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
- 作者: Gregory Brown,高橋征義,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/03/26
- メディア: 大型本
- 購入: 9人 クリック: 307回
- この商品を含むブログ (48件) を見る
知らんことがいくつかあった。ゼミナールのとき用の実験補助スクリプトでRubyをガシガシ書いていたが、最近技術系のことを追ってなかったのでなんか新鮮な感じがした。
テキスト処理とファイル管理
File.foreach
Enumeratorを返すので、ブロックが使える。
enum = File.foreach("hoge.txt") sum = enum.inject(0) {|s, r| s + r }
行数をトラッキング
File.linenoメソッドというのが使える。例になっていた「奇数行がkey、偶数行がvalueになっているファイルをHashに」という例が簡潔でおー、という感じだったのでメモ。
keys = [] values = [] File.open("hoge.txt") do |file| file.each{|line| (file.lineno.odd? ? keys : values) << line.chomp } end Hash[*keys.zip(values).flatten]
最後の行のイディオムっぽいやつはいつまでたっても覚えてない。