Ruby pattern matching uses case ... in to compare a value against patterns.

Case In Basics

case_in_basics.rb
status = 

case status
in "ready"
  message = "system ready"
in "error"
  message = "needs attention"
else
  message = "unknown status"
end

puts "status=#{status}"
puts "message=#{message}"
status = 

case status
in "ready"
  message = "system ready"
in "error"
  message = "needs attention"
else
  message = "unknown status"
end

puts "status=#{status}"
puts "message=#{message}"
status = 

case status
in "ready"
  message = "system ready"
in "error"
  message = "needs attention"
else
  message = "unknown status"
end

puts "status=#{status}"
puts "message=#{message}"
case in `case ... in` checks patterns from top to bottom and runs the first matching branch.