Module: LegacyWoes::ClassMethods

Defined in:
lib/legacy_woes.rb

Instance Method Summary collapse

Instance Method Details

#created_at_column(legacy_column_name) ⇒ Object

Sets the created_at column. Also defines methods for created_at and created_at=.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/legacy_woes.rb', line 16

def created_at_column(legacy_column_name)
  module_eval <<-EOB
    def write_attribute_with_#{legacy_column_name}_created_at(name, value, &block)
      if name == 'created_at'
        write_attribute('#{legacy_column_name}', value)
      else
        send(:write_attribute_without_#{legacy_column_name}_created_at, name, value, &block)
      end
    end
    EOB
     
  define_method :created_at do
    send(legacy_column_name)
  end

  define_method :created_at= do |value|
    send('#{legacy_column_name}=', value)
  end
  alias_method_chain :write_attribute, "#{legacy_column_name}_created_at"
end

#updated_at_column(legacy_column_name) ⇒ Object

Sets the updated_at column. Also defines methods for updated_at and updated_at=.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/legacy_woes.rb', line 39

def updated_at_column(legacy_column_name)
  module_eval <<-EOB
    def write_attribute_with_#{legacy_column_name}_updated_at(name, value, &block)
      if name == 'updated_at'
        write_attribute('#{legacy_column_name}', value)
      else
        send(:write_attribute_without_#{legacy_column_name}_updated_at, name, value, &block)
      end
    end
    EOB
     
  define_method :updated_at do
    send(legacy_column_name)
  end

  define_method :updated_at= do |value|
    send('#{legacy_column_name}=', value)
  end
  alias_method_chain :write_attribute, "#{legacy_column_name}_updated_at"
end