Conditionals return values
Another extremely useful aspect about if and unless statements in Ruby is
that they return values.
Yes, that’s right:
An if statement, with all of its branches, as a whole, evaluates to the value
returned by the statement that was last evaluated, just like a method does.
For example, instead of this:
if number.even?
puts "The number is even"
else
puts "The number is odd"
end
we can also assign the return value of the if statement to a variable, and
then output it:
message = if number.even?
"The number is even"
else
"The number is odd"
end
puts message
Also, for the same reason, if we define a method that contains nothing but a
single if/else statement, the method will, again, return the last statement
evaluated:
def message(number)
if number.even?
"The number is even"
else
"The number is odd"
end
end
puts message(2)
puts message(3)
The first method call message(2) will output The number is even, and the
second one message(3) will output The number is odd.