class Object

this is taken directly from activesupport 3.1.1 we won’t redo all this unless we need to

Public Instance Methods

blank?() click to toggle source

An object is blank if it’s false, empty, or a whitespace string. For example, “”, “ ”, nil, [], and {} are all blank.

This simplifies:

if address.nil? || address.empty?

…to:

if address.blank?
# File lib/core_ext/object/blank.rb, line 15
def blank?
  respond_to?(:empty?) ? empty? : !self
end
presence() click to toggle source

Returns object if it’s present? otherwise returns nil. object.presence is equivalent to object.present? ? object : nil.

This is handy for any representation of objects where blank is the same as not present at all. For example, this simplifies a common check for HTTP POST/query parameters:

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'
# File lib/core_ext/object/blank.rb, line 38
def presence
  self if present?
end
present?() click to toggle source

An object is present if it’s not blank?.

# File lib/core_ext/object/blank.rb, line 20
def present?
  !blank?
end