Ruby uses true, false, and nil to model yes/no and missing values.

Booleans and Nil

booleans_nil.rb
logged_in = 
nickname = nil
status = logged_in ? "active" : "guest"
has_nickname = !nickname.nil?

puts "status=#{status}"
puts "has_nickname=#{has_nickname}"
logged_in = 
nickname = nil
status = logged_in ? "active" : "guest"
has_nickname = !nickname.nil?

puts "status=#{status}"
puts "has_nickname=#{has_nickname}"
nil `nil` represents no value. A comparison such as `value.nil?` returns a boolean.