7 Little-Known Ruby Methods To Help You Write Better Code - RubyGuides
日本語だと「あなたがより良いコードを書くのを助ける7つのあまり知られていないRubyの方法」ってなもんでしょうか。
以下2つ知りませんでした。
Integer#digits
ちょっと使い所が思いつかないですが、へーという感じ。
123.digits => [3, 2, 1] 123.to_s.chars.map(&:to_i).reverse => [3, 2, 1]
Hash#transform_values
これは新鮮。いつもはiteratorで数えていたのですが、group_byしてsizeを求めるという方法。
こんな風に書けたのですね。
words = %w(cat cat tiger dog cat) words.group_by(&:itself).transform_values(&:size) => {"cat"=>3, "tiger"=>1, "dog"=>1}
いつもだと以下のように書いていました。
# use inject words.inject(Hash.new {0}) { |h, word| h[word] += 1; h } # do not use inject h = Hash.new { 0 } words.each { |word| h[word] += 1 } h