なんやかんやで久しぶりにgem作りました
compact_blank (0.1.0): Adds compact_blank and compact_blank! to Array and Hash https://t.co/QSylzr5ydX
— RubyGems (@rubygems) 2017年7月9日
どんなgem?
Array#compact や Hash#compact *1だとnilを除外したArrayやHashを作ることができますが、空文字も除外したいことがちょいちょいあるので作りました。
*2
使い方
refinementsを使ってるので using CompactBlank を書いた場所のみ compact_blank や compact_blank! が生えます
Array#compact_blank, Array#compact_blank!
compact_blank!(ビックリマークがついてるメソッド)は自分自身を破壊的に変更します。(変更時は self が返って、変更されなかった時は nil が返るのも #compact! 準拠です)
using CompactBlank array = ["a", nil, "b", ""] array.compact #=> ["a", "b", ""] array.compact_blank #=> ["a", "b"] array.compact_blank! #=> ["a", "b"] array #=> ["a", "b"]
Hash#compact_blank, Hash#compact_blank!
using CompactBlank hash = { a: "1", b: nil, c: "3", d: "" } # NOTE: Hash#compact is feature of activesupport hash.compact #=> {:a=>"1", :c=>"3", :d=>""} hash.compact_blank #=> {:a=>"1", :c=>"3"} hash.compact_blank! #=> {:a=>"1", :c=>"3"} hash #=> {:a=>"1", :c=>"3"}
やってること
20行ちょいの雑なモンキーパッチです https://github.com/sue445/compact_blank/blob/v0.1.0/lib/compact_blank.rb