Class: LSQS::ActionRouter

Inherits:
Object
  • Object
show all
Defined in:
lib/lsqs/action_router.rb

Defined Under Namespace

Classes: ActionError

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue_list) ⇒ ActionRouter

Returns a new instance of ActionRouter.

Parameters:



9
10
11
# File 'lib/lsqs/action_router.rb', line 9

def initialize(queue_list)
  @queue_list = queue_list
end

Instance Attribute Details

#queue_listObject (readonly)

Returns the value of attribute queue_list.



4
5
6
# File 'lib/lsqs/action_router.rb', line 4

def queue_list
  @queue_list
end

Instance Method Details

#distribute(action_name, options) ⇒ LSQS::Actions::Base

Distributes an action to the appropriate class. If an action does not exist, it throws an error.

Parameters:

  • action_name (String)
  • options (Hash)

Returns:



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/lsqs/action_router.rb', line 22

def distribute(action_name, options)
  if LSQS::Actions.const_defined?(action_name)
    action = LSQS::Actions.const_get(action_name).new(queue_list)
    queue_list.query do
      action.perform(options)
    end
    
    return action
  else
    raise ActionError, "undefined action `#{action_name}`"
  end
end