Method parameters and constructing defaults in Ruby
Under shoulda known but didn't
Under shoulda known but didn't.
Ruby methods can have defaults:
def hello(message: 'World')
puts "hello #{message}"
end
The default can call an initializer:
class Greeting
def initialize(message)
@message = message
end
def message
@message
end
end
def hello(message: Greeting.new)
puts "hello #{message.message}"
end
And the initializer can take parameters:
class Greeting
def initialize(message = 'there')
@message = message
end
def message
@message
end
end
def hello(message: Greeting.new('World'))
puts "hello #{message.message}"
end
And you can refer to earlier argument values:
class Greeting
def initialize(message = 'there')
@message = message
end
def message
@message
end
end
def hello(announcement: 'gorgeous', message: Greeting.new(announcement))
puts "hello #{message.message}"
end
Member discussion