module StateMachina module Definitions def machine(machine_name = 'default', column_name: :state, metadata: {}) model_name = StateMachina::Util.normalized_klass_to_name(self) machine = StateMachina::Machine.new(model_name, machine_name, column_name: column_name, metadata: metadata) yield(StateMachina::Registry.register_machine(machine)) end alias_method :state_machine, :machine def extend_machine(klass, machine_name = 'default') model_name = StateMachina::Util.normalized_klass_to_name(klass) yield(StateMachina::Registry.find_machine!(model_name, machine_name)) end alias_method :extend_state_machine, :extend_machine end end