What\'s going on here? What is the subtle difference between the two forms of \"unless\"?
> irb(main):001:0> foo = true unless defined?(foo) => nil
in the first instance you call foo into existence in the assignment statement. Maybe this will clarify:
foo
bar = if true puts bar.class else puts "not reached" end NilClass => nil baz = if true puts baz.class 42 else puts "not reached" end NilClass => 42