Sha256: d69f66aeb1bd051acb18f5e0660a1db2b1d65d1a0e32c1822107fe9978cb4e19

Contents?: true

Size: 1.51 KB

Versions: 97

Compression:

Stored size: 1.51 KB

Contents

class Object
  # 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?
  def blank?
    respond_to?(:empty?) ? empty? : !self
  end

  # An object is present if it's not <tt>blank?</tt>.
  def present?
    !blank?
  end

  # Returns object if it's <tt>present?</tt> otherwise returns +nil+.
  # <tt>object.presence</tt> is equivalent to <tt>object.present? ? object : nil</tt>.
  #
  # 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'
  def presence
    self if present?
  end

  def trim
    respond_to?(:strip) ? self.strip : self
  end
end



class Hash
  def validate_required_strings!
    self.each do |key, value|
      raise FinApps::REST::MissingArgumentsError.new "Missing argument: #{key}." if value.blank?
      raise FinApps::REST::InvalidArgumentsError.new "Invalid #{key} specified: #{value.inspect} must be a string or symbol." unless value.is_a?(String) || value.is_a?(Symbol)
    end
  end

  def compact
    self.delete_if { |_, v| v.nil? }
  end
end

Version data entries

97 entries across 97 versions & 1 rubygems

Version Path
finapps-0.2.14.pre lib/finapps/utils/utils.rb
finapps-0.2.13.pre lib/finapps/utils/utils.rb
finapps-0.2.12.pre lib/finapps/utils/utils.rb
finapps-0.2.11.pre lib/finapps/utils/utils.rb
finapps-0.2.10.pre lib/finapps/utils/utils.rb
finapps-0.2.9.pre lib/finapps/utils/utils.rb
finapps-0.2.8.pre lib/finapps/utils/utils.rb
finapps-0.2.7.pre lib/finapps/utils/utils.rb
finapps-0.2.6.pre lib/finapps/utils/utils.rb
finapps-0.2.5.pre lib/finapps/utils/utils.rb
finapps-0.2.4.pre lib/finapps/utils/utils.rb
finapps-0.2.3.pre lib/finapps/utils/utils.rb
finapps-0.2.2.pre lib/finapps/utils/utils.rb
finapps-0.2.1.pre lib/finapps/utils/utils.rb
finapps-0.1.23.pre lib/finapps/utils/utils.rb
finapps-0.1.22.pre lib/finapps/utils/utils.rb
finapps-0.1.21.pre lib/finapps/utils/utils.rb