Module: EnumMachine::AttributePersistenceMethods

Defined in:
lib/enum_machine/attribute_persistence_methods.rb

Class Method Summary collapse

Class Method Details

.[](attr, enum_values) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/enum_machine/attribute_persistence_methods.rb', line 5

def self.[](attr, enum_values)
  Module.new do
    define_singleton_method(:extended) do |klass|
      klass.attr_accessor :parent

      enum_values.each do |enum_value|
        enum_name = enum_value.underscore

        klass.class_eval "          # def to_created!\n          #   parent.update!('state' => 'created')\n          # end\n\n          def to_\#{enum_name}!\n            parent.update!('\#{attr}' => '\#{enum_value}')\n          end\n        RUBY\n      end\n    end\n  end\nend\n", __FILE__, __LINE__ + 1