Real keyword arguments

Changes in new versions / Ruby 2.0

# *** before: ***
def greet_old(options = {})
  name = options[:name] || "World"
  greeting = options[:greeting] || "Hello"
  "#{greeting}, #{name}!"
end

puts greet_old(name: "Ann")

# *** in version 2.0: ***
def greet(name: "World", greeting: "Hello")
  "#{greeting}, #{name}!"
end

puts greet(name: "Ann")
puts greet(name: "Ann", greeting: "Hi")