なんやかんやで久しぶりに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