Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

ActiveSupport | Object#presence

概要

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"