Module: TimeOfDayAttr::ActiveRecordExt::ClassMethods

Defined in:
lib/time_of_day_attr/active_record_ext.rb

Instance Method Summary collapse

Instance Method Details

#time_of_day_attr(*attrs) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/time_of_day_attr/active_record_ext.rb', line 8

def time_of_day_attr(*attrs)
  options = attrs.extract_options!

  writers = Module.new do
    attrs.each do |attr|
      define_method("#{attr}=") do |value|
        if value.is_a?(String)
          delocalized_value = TimeOfDayAttr.delocalize(value, options)
          super(delocalized_value)
        else
          super(value)
        end
      end
    end
  end

  if options[:prepend]
    prepend writers
  else
    include writers
  end
end