概要
Object#presence
詳細
Object#presenceについて
Object#presence
present?がtrueならインスタンスを返却、それ以外ならnilを返却する。
nilガードと併用されるパターンが多い。
present?については下記記事参照
ActiveSupport | Extensions to All Objects | blank?/present?
http://d.hatena.ne.jp/tbpg/20140113/1389613367
サンプル
# encoding: utf-8 require "active_support/core_ext/object/blank" def hoge(type) case type when 1 "test" when 2 "" when 3 " " else nil end end types = [1,2,3,4].each {|i|p hoge(i).presence} puts "----------------------" types = [1,2,3,4].each {|i|p hoge(i).presence || "default"}
出力
"test" nil nil nil ---------------------- "test" "default" "default" "default"