Sha256: d44377aba025a2ba25eaa30eafb25eff30cd14226409c556482e7633a23a9ef8

Contents?: true

Size: 889 Bytes

Versions: 1

Compression:

Stored size: 889 Bytes

Contents

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

    def find_machine(machine_name = 'default')
      model_name = StateMachina::Util.normalized_klass_to_name(self)

      StateMachina::Registry.find_machine!(model_name, machine_name)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
state_machina-0.1.1 lib/state_machina/definitions.rb