How can I implement options hashes? How is the structure of a class that has option hashes in it? Say I have a person class. I want to implement a method such as my_age that when called upon will tell me my age using options hashes.
You could do something like this:
class Person
def initialize(opts = {})
@options = opts
end
def my_age
return @options[:age] if @options.has_key?(:age)
end
end
and now you're able to call to the age like this
p1 = Person.new(:age => 24)<br/>
p2 = Person.new
p1.my_age # => 24<br/>
p2.my_age # => nil
class Person
def birth_date
Time.parse('1776-07-04')
end
def my_age(opts=nil)
opts = {
as_of_date: Time.now,
birth_date: birth_date,
unit: :year
}.merge(opts || {})
(opts[:as_of_date] - opts[:birth_date]) / 1.send(opts[:unit])
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With