Sha256: 2c08bcfb14ae5f1dff6cdd26ba1cf339264e3847acbdd3121a441540ff8c2404

Contents?: true

Size: 1.51 KB

Versions: 15

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
end

class NilClass
  # +nil+ is blank:
  #
  #   nil.blank? # => true
  def blank?
    true
  end
end

class FalseClass
  # +false+ is blank:
  #
  #   false.blank? # => true
  def blank?
    true
  end
end

class TrueClass
  # +true+ is not blank:
  #
  #   true.blank? # => false
  def blank?
    false
  end
end

class Array
  # An array is blank if it's empty:
  #
  #   [].blank?      # => true
  #   [1,2,3].blank? # => false
  alias_method :blank?, :empty?
end

class Hash
  # A hash is blank if it's empty:
  #
  #   {}.blank?                # => true
  #   { key: 'value' }.blank?  # => false
  alias_method :blank?, :empty?
end

class String
  # A string is blank if it's empty or contains whitespaces only:
  #
  #   ''.blank?                 # => true
  #   '   '.blank?              # => true
  #   ' '.blank?               # => true
  #   ' something here '.blank? # => false
  def blank?
    # self !~ /[^[:space:]]/
    # TODO: Opal fails with the previous regex
    strip == ''
  end
end

class Numeric #:nodoc:
  # No number is blank:
  #
  #   1.blank? # => false
  #   0.blank? # => false
  def blank?
    false
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
volt-0.8.27.beta2 lib/volt/extra_core/blank.rb
volt-0.8.27.beta1 lib/volt/extra_core/blank.rb
volt-0.8.26.beta1 lib/volt/extra_core/blank.rb
volt-0.8.26 lib/volt/extra_core/blank.rb
volt-0.8.24 lib/volt/extra_core/blank.rb
volt-0.8.23 lib/volt/extra_core/blank.rb
volt-0.8.22 lib/volt/extra_core/blank.rb
volt-0.8.22.beta2 lib/volt/extra_core/blank.rb
volt-0.8.22.beta1 lib/volt/extra_core/blank.rb
volt-0.8.21 lib/volt/extra_core/blank.rb
volt-0.8.20 lib/volt/extra_core/blank.rb
volt-0.8.19 lib/volt/extra_core/blank.rb
volt-0.8.18 lib/volt/extra_core/blank.rb
volt-0.8.17 lib/volt/extra_core/blank.rb
volt-0.8.16 lib/volt/extra_core/blank.rb