module Enum::Transitions::DSL

Public Instance Methods

transitions(enum:, &block) click to toggle source
# File lib/enum/transitions/dsl.rb, line 11
def transitions(enum:, &block)
  states = public_send(enum.to_s.pluralize).keys
  config = Configuration.new(enum.to_s, states)
  proxy  = Proxy.embed(states).new(config)

  config.with_safe_nesting do
    Docile.dsl_eval(proxy, &block)
  end

  include Mixin.new(config)
end