7 Little-Known Ruby Methods To Help You Write Better Code

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