Bawaan Ruby memiliki method nil? dan empty?, sedangkan pada Ruby on Rails ada blank?. Berikut penjelasannya masing-masing.

Method nil?

Method nil? digunakan untuk mengecek apakah suatu objek bernilai nil atau merupakan instance dari NilClass.

nil.nil? #=> true
false.nil? #=> false
true.nil? #=> false
[].nil? #=> false
"".nil? #=> false
0.nil? #=> false

my_arr = Array.new #=> []
my_arr.nil? #=> false

s = String.new #=> ""
s.nil? #=> false

my_var.nil? #=> NameError: undefined local variable or method `my_var' for main:Object
my_var = nil #=> nil
my_var.nil? #=> true

Method empty?

Method empty? adalah method yang dimiliki hanya oleh objek-objek tertentu sehingga tidak semua objek memiliki method ini.

Sebagai contoh, array kosong dan string kosong. Array kosong bukan nil karena merupakan objek atau instance dari kelas Array yang tidak memiliki elemen. Sedangkan string kosong juga bukan nil karena merupakan objek atau instance dari kelas String yang memiliki nol bytes didalamnya.

nil.empty? #=> NoMethodError: undefined method `empty?' for nil:NilClass
false.empty? #=> NoMethodError: undefined method `empty?' for false:FalseClass
true.empty? #=> NoMethodError: undefined method `empty?' for true:TrueClass
[].empty? #=> true
"".empty? #=> true
0.empty? #=> NoMethodError: undefined method `empty?' for 0:Fixnum

my_arr = Array.new #=> []
my_arr.empty? #=> true

s = String.new #=> ""
s.empty? #=> true

my_var.empty? #=> NameError: undefined local variable or method `my_var' for main:Object
my_var = [] #=> []
my_var.empty? #=> true

Method blank?

Method blank? bukan merupakan method dari Ruby, melainkan method pada framework Ruby on Rails.

Sebuah objek dianggap blank jika false, kosong atau berisi sebuah karakter spasi. Contoh, "", " ", nil, [], dan {} adalah blank karena kosong. Salah satu tujuannya adalah menyederhanakan pengecekan apakah suatu objek nil dan empty dibawah ini.

# Pada Ruby
if my_var.nil? && my_var.empty?

# Pada framework Ruby on Rails yang terdapat blank?
if my_var.blank?