module ActionConductor::ActionController::ClassMethods

Public Instance Methods

conductor(handle, options={}) click to toggle source
# File lib/action_conductor/integrations/action_controller.rb, line 6
def conductor(handle, options={})
  register_conductor define_conductor(handle, options)
end

Private Instance Methods

conductors() click to toggle source
# File lib/action_conductor/integrations/action_controller.rb, line 28
def conductors
  @conductors ||= Collection.new
end
define_conductor(handle, options={}) click to toggle source
# File lib/action_conductor/integrations/action_controller.rb, line 20
def define_conductor(handle, options={})
  only_actions   = options.fetch(:only)   { self.action_methods.to_a }
  except_actions = options.fetch(:except) { [] }
  actions        = only_actions - except_actions

  Definition.new(handle: handle, actions: actions)
end
register_conductor(definition) click to toggle source
# File lib/action_conductor/integrations/action_controller.rb, line 12
def register_conductor(definition)
  conductors << definition.klass

  define_method "#{definition.handle}_conductor" do
    self.conductor(definition.handle)
  end
end