Hash patterns match required keys and bind their values.

Hash Patterns

hash_patterns.rb
kind = 
event = { kind: kind, x: 4, y: 7 }

case event
in { kind: "click", x: x, y: y }
  summary = "click #{x},#{y}"
in { kind: "view" }
  summary = "view event"
else
  summary = "ignored"
end

puts "kind=#{kind}"
puts "summary=#{summary}"
kind = 
event = { kind: kind, x: 4, y: 7 }

case event
in { kind: "click", x: x, y: y }
  summary = "click #{x},#{y}"
in { kind: "view" }
  summary = "view event"
else
  summary = "ignored"
end

puts "kind=#{kind}"
puts "summary=#{summary}"
kind = 
event = { kind: kind, x: 4, y: 7 }

case event
in { kind: "click", x: x, y: y }
  summary = "click #{x},#{y}"
in { kind: "view" }
  summary = "view event"
else
  summary = "ignored"
end

puts "kind=#{kind}"
puts "summary=#{summary}"
hash pattern A hash pattern can require keys and assign their values to variables.