From the comments on the file, one of the main short hand usage of ‘presence’ method is :
For example, something like
# state = params[:state] if params[:state].present?
# country = params[:country] if params[:country].present?
# region = state || country || 'US'
#
# becomes
#
# region = params[:state].presence || params[:country].presence || 'US'
However the ‘||’ use case does not play well if the Object is a boolean type. Example usecase :
# checked = false
# checked.presence || true
#=> this returns true even even though checked has a value.
Would it be a good idea to have a default value on presence method the way we can provide one with ‘fetch’ method ? . Example :
def presence(default_value = nil)
return self if present?
default_value
end
checked = false
checked.presence(true) #instead of 'checked.presence || value'
This also reducers from using ‘||’ and we can just use the argument. Very
similar to hash.fetch(key, default_value)
Not a big case/change, but was wondering if someone was having the urge of
adding this one line to make life a little easier