[ruby-list:50120] [ANN] Kasen(下線) v0.1.1
From:
Tanaka Kazuki <mail@...>
Date:
2015-04-27 05:28:38 UTC
List:
ruby-list #50120
Kasen はRubyのブロック記述を少しだけスッキリさせる小細工gemです.
Github: https://github.com/gogotanaka/_Rubygems: https://rubygems.org/gems/kasen
例えば
[1, 2, 3].map &(_ + 1).to_s
は
[1, 2, 3].map { |n| (n + 1).to_s }
と同等になります.
Kernel#_ の返値にメソッドをチェーンすると、それらのメソッドをチェーンするような処理をbodyにもつ引数1のprocを返すようなオブジェクトを返します.
[['1', '2'], ['3', '4']].map { |ary| ary.select { |n| n.to_i.eql?(1) } }
この様な入れ子ブロックも
[['1', '2'], ['3', '4']].map &_.select(&_.to_i.eql?(1))
といった記述が出来ます.
_は予約されやすいのでエイリアスであるKernel#kを使う事も可能です.irbの直前の返値を_に代入する機能は無効にします.
田中--===============================Keio university mathematical sciences 田中 和希 Kazuki Tanaka
mail: mail@tanakakazuki.comHP: http://gogotanaka.me/Blog: http://blog.gogotanaka.me/Twitter: @gogo_tanakaFacebook: https://www.facebook.com/gogogogotanaka===============================