Keyword arguments name each value at the call site.

Keyword Arguments

keyword_arguments.rb
def order_summary(item:, quantity:, urgent: false)
  label = urgent ? "rush" : "standard"
  "#{quantity} #{item} #{label}"
end

quantity = 
summary = order_summary(item: "notebook", quantity: quantity, urgent: true)

puts "quantity=#{quantity}"
puts "summary=#{summary}"
def order_summary(item:, quantity:, urgent: false)
  label = urgent ? "rush" : "standard"
  "#{quantity} #{item} #{label}"
end

quantity = 
summary = order_summary(item: "notebook", quantity: quantity, urgent: true)

puts "quantity=#{quantity}"
puts "summary=#{summary}"
def order_summary(item:, quantity:, urgent: false)
  label = urgent ? "rush" : "standard"
  "#{quantity} #{item} #{label}"
end

quantity = 
summary = order_summary(item: "notebook", quantity: quantity, urgent: true)

puts "quantity=#{quantity}"
puts "summary=#{summary}"
keyword argument Keyword arguments make method calls clearer when several values are passed.