module DateQueries::ClassMethods
Public Instance Methods
acts_as_birthday(*fields)
click to toggle source
# File lib/date_queries.rb, line 23 def acts_as_birthday(*fields) # fields to be treated as birthdays fields.each do |field| raise ArgumentError, "Column '#{field}' does not exist in '#{self.name}' model." unless self.column_names.include?(field.to_s) ScopeDefiner.define_birthday_scopes_for(field, self) class_eval %{ def #{field}_age return nil unless self.#{field}? today = Date.today.in_time_zone age = today.year - #{field}.year age -= 1 if today.month < #{field}.month || (today.month == #{field}.month && today.mday < #{field}.mday) age end def #{field}_today? return nil unless self.#{field}? Date.today.strftime('%m%d') == #{field}.strftime('%m%d') end } end end
date_queries_for(*query_fields)
click to toggle source
# File lib/date_queries.rb, line 14 def date_queries_for(*query_fields) # setting the scope types according to ActiveRecord version query_fields.each do |field| raise ArgumentError, "Column '#{field}' does not exist in '#{self.name}' model." unless self.column_names.include?(field.to_s) ScopeDefiner.define_scopes_for(field, self) end end