Module: StatefulEnum::ActiveRecordEnumExtension

Defined in:
lib/stateful_enum/active_record_extension.rb

Instance Method Summary collapse

Instance Method Details

#enum(definitions, &block) ⇒ Object

enum status: 0, assigned: 1, resolved: 2, closed: 3 do

  event :assign do
    transition :unassigned => :assigned
  end
end


12
13
14
15
16
17
18
19
20
21
22
# File 'lib/stateful_enum/active_record_extension.rb', line 12

def enum(definitions, &block)
  prefix, suffix = definitions[:_prefix], definitions[:_suffix] if Rails::VERSION::MAJOR >= 5
  enum = super definitions

  if block
    definitions.each_key do |column|
      states = enum[column]
      (@_defined_stateful_enums ||= []) << StatefulEnum::Machine.new(self, column, (states.is_a?(Hash) ? states.keys : states), prefix, suffix, &block)
    end
  end
end