module MyAge::Calculator
Public Class Methods
included(base)
click to toggle source
# File lib/my_age/calculator.rb, line 8 def self.included(base) def base.my_dob(col) define_method(:dob) { send col } end end
Public Instance Methods
age(date = Date.today)
click to toggle source
# File lib/my_age/calculator.rb, line 15 def age(date = Date.today) return 0 if dob.blank? || date.blank? || date <= dob (date_to_int(date) - date_to_int(dob)) / 10_000 end
method_missing(name, *args)
click to toggle source
Calls superclass method
# File lib/my_age/calculator.rb, line 21 def method_missing(name, *args) if name.to_s =~ /_as_of_/ date_method = name.to_s.split('_as_of_')[-1] age today.send(date_method.to_sym, *args) else super end end
Private Instance Methods
date_to_int(date)
click to toggle source
# File lib/my_age/calculator.rb, line 32 def date_to_int(date) date.strftime('%Y%m%d').to_i end
today()
click to toggle source
# File lib/my_age/calculator.rb, line 36 def today Date.today end