diff options
Diffstat (limited to 'activesupport/lib/active_support/core_ext/object/blank.rb')
-rw-r--r-- | activesupport/lib/active_support/core_ext/object/blank.rb | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/core_ext/object/blank.rb b/activesupport/lib/active_support/core_ext/object/blank.rb new file mode 100644 index 0000000000..9a1f663bf3 --- /dev/null +++ b/activesupport/lib/active_support/core_ext/object/blank.rb @@ -0,0 +1,58 @@ +class Object + # An object is blank if it's false, empty, or a whitespace string. + # For example, "", " ", +nil+, [], and {} are 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 blank. + def present? + !blank? + end +end + +class NilClass #:nodoc: + def blank? + true + end +end + +class FalseClass #:nodoc: + def blank? + true + end +end + +class TrueClass #:nodoc: + def blank? + false + end +end + +class Array #:nodoc: + alias_method :blank?, :empty? +end + +class Hash #:nodoc: + alias_method :blank?, :empty? +end + +class String #:nodoc: + def blank? + self !~ /\S/ + end +end + +class Numeric #:nodoc: + def blank? + false + end +end |