Skip to content

Instantly share code, notes, and snippets.

@npatmaja
Created August 20, 2014 00:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save npatmaja/3e3e6e2be40d44b5592f to your computer and use it in GitHub Desktop.
Save npatmaja/3e3e6e2be40d44b5592f to your computer and use it in GitHub Desktop.
nil? empty? blank?

.nil?

  • It is Ruby method
  • It can be used on any object and is true if the object is nil.
  • "Only the object nil responds true to nil?" - RailsAPI
nil.nil? = true
anthing_else.nil? = false
a = nil
a.nil? = true
“”.nil = false

.empty?

  • It is Ruby method
  • can be used on strings, arrays and hashes and returns true if:
String length == 0
Array length == 0
Hash length == 0
  • Running .empty? on something that is nil will throw a NoMethodError
"".empty = true
" ".empty? = false

.blank?

  • It is Rails method
  • operate on any object as well as work like .empty? on strings, arrays and hashes.
nil.blank? = true 
[].blank? = true 
{}.blank? = true 
"".blank? = true 
5.blank? == false
  • It also evaluates true on strings which are non-empty but contain only whitespace:
"  ".blank? == true"  ".empty? == false

Quick tip: !obj.blank? == obj.present?

activesupport/lib/active_support/core_ext/object/blank.rb, line 17 # (Ruby 1.9)

def present? 
 !blank?
end

source http://pramodtech.quora.com/nil-empty-blank-present-in-Ruby-on-Rails

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