class StrictMachine::Base

Public Class Methods

strict_machine(state_attr = "state", &block) click to toggle source
# File lib/strict_machine/base.rb, line 7
def self.strict_machine(state_attr = "state", &block)
  dc = DefinitionContext.new
  dc.instance_eval(&block)

  stored = self

  metaclass.instance_eval do
    define_method(:definition) { dc }
    define_method(:strict_machine_class) { stored }
    define_method(:strict_machine_attr) { state_attr }
  end
end