last modified April 27, 2025
This tutorial explains Ruby's true keyword and boolean logic. The
true keyword represents the boolean true value in Ruby.
The true keyword is one of Ruby's two boolean literals (with
false). It's an instance of TrueClass and evaluates
to true in all boolean contexts.
In Ruby, only false and nil are falsy. All other
values including zero, empty strings, and empty arrays are truthy.
This simple example demonstrates the most basic usage of the true
keyword in a conditional statement.
if true puts "This will always execute" else puts "This will never execute" end
The code always executes the first branch because the condition evaluates to
true. The else branch is unreachable in this case.
Methods often return true to indicate success or positive results.
This example shows a validation method returning boolean values.
def valid_email?(email)
email.include?("@") && email.include?(".")
end
result = valid_email?("user@example.com")
if result == true
puts "Valid email address"
else
puts "Invalid email address"
end
The valid_email? method returns true only when both
conditions are met. The == true comparison is explicit but often
unnecessary in Ruby.
The true keyword works with Ruby's logical operators
(&&, ||, !). This example
demonstrates boolean logic.
a = true
b = false
puts "AND: #{a && b}" # false
puts "OR: #{a || b}" # true
puts "NOT: #{!a}" # false
puts "XOR: #{a ^ b}" # true
The example shows various boolean operations with true and
false. XOR (^) returns true when operands differ.
The ternary operator is a concise conditional that often uses boolean values.
This example shows true determining the returned value.
logged_in = true message = logged_in ? "Welcome back!" : "Please log in" puts message
The ternary operator checks if logged_in is true and
returns the appropriate string. This is a common pattern for conditional messages.
Methods can use true as a default parameter value. This enables
optional boolean flags that default to true.
def process_data(data, verbose = true) puts "Processing data..." if verbose # data processing logic puts "Done!" if verbose end process_data([1, 2, 3]) # verbose output process_data([1, 2, 3], false) # silent processing
The verbose parameter defaults to true, showing
progress messages. Passing false suppresses the output.
Case statements can use true in when clauses to create flexible
conditions. This allows for complex matching logic.
age = 25 case true when age < 18 puts "Child" when age < 65 puts "Adult" else puts "Senior" end
The case statement evaluates each condition against true. This
pattern is useful when conditions don't share a common subject.
The true keyword can be used in object comparisons and equality
checks. This example demonstrates various comparison scenarios.
puts "true object ID: #{true.object_id}"
puts "TrueClass instance: #{true.instance_of?(TrueClass)}"
puts "Equality check: #{true == true}" # true
puts "Identity check: #{true.equal?(true)}" # true
puts "Boolean conversion: #{!!true}" # true
All true values in Ruby are the same object (singleton pattern).
The example shows identity checks and boolean conversion techniques.
This tutorial covered Ruby's true keyword with practical examples
showing boolean logic, method returns, and conditional structures.
My name is Jan Bodnar, and I am a passionate programmer with extensive programming experience. I have been writing programming articles since 2007. To date, I have authored over 1,400 articles and 8 e-books. I possess more than ten years of experience in teaching programming.
List all Ruby tutorials.