module IncompleteDate::IncompleteDateAttr
Public Instance Methods
incomplete_date_attr(attr_name, raw_name)
click to toggle source
# File lib/incomplete_date/active_record.rb, line 11 def incomplete_date_attr(attr_name, raw_name) instance_var = "@#{attr_name}" # getter define_method "#{attr_name}" do value = instance_variable_get(instance_var) value ||= IncompleteDate.new(read_attribute(raw_name)) instance_variable_set(instance_var, value) value end # setter define_method "#{attr_name}=" do |value| #begin value = IncompleteDate.new(value) instance_variable_set(instance_var, value) write_attribute(raw_name, value.to_i) #rescue ArgumentError # errors.add(raw_name) #end end end
incomplete_date_attrs(*names)
click to toggle source
Defines several virtual attributes at once for raw real attributes
# File lib/incomplete_date/active_record.rb, line 37 def incomplete_date_attrs(*names) options = names.extract_options! prefix = options.fetch(:prefix, 'raw') names.each do |name| raw_name = "#{prefix}_#{name}" incomplete_date_attr name, raw_name end end