Skip to content

Instantly share code, notes, and snippets.

@pythonicrubyist
Last active February 21, 2024 17:38
Show Gist options
  • Star 33 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • Save pythonicrubyist/8114720 to your computer and use it in GitHub Desktop.
Save pythonicrubyist/8114720 to your computer and use it in GitHub Desktop.
Difference between nil?, empty?, blank? and present? in Ruby and Ruby on Rasils.
# nil? can be used on any Ruby object. It returns true only if the object is nil.
nil.nil? # => true
[].nil? # => false
{}.nil? # => false
"".nil? # => false
" ".nil? # => false
true.nil? # => false
# empty? can be used on some Ruby objects including Arrays, Hashes and Strings. It returns true only if the object's length is zero.
nil.empty? # NoMethodError: undefined method `empty?' for nil:NilClass
[].empty? # => true
{}.empty? # => true
"".empty? # => true
" ".empty? # => true
true.empty? # => NoMethodError: undefined method `empty?' for true:TrueClass
# blank? is an ActiveSupport extension to Ruby Object and returns true for nil, false, empty, or a white-space string.
[ "", " ", false, nil, [], {} ].all?(&:blank?) # => true
# present? is also an ActiveSupport extension to Ruby Object and it is the negation of blank?
[ "", " ", false, nil, [], {} ].any?(&:present?) # => false
@xerosanyam
Copy link

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment