8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/cyclop/action.rb', line 8
def self.find_by_queue(queue)
actions = @@actions.select{|action| action.queues.include? queue }
if @@actions.empty?
raise Cyclop::NoActionFound, "No action defined"
elsif actions.empty?
queues = @@actions.collect(&:queues).flatten.uniq.collect(&:inspect)
raise Cyclop::NoActionFound, "No action found for #{queue.inspect} queue. Valid queues: #{queues.join(", ")}"
elsif actions.size>1
raise Cyclop::ActionQueueClash, "\"#{queue}\" queue belongs to multiple actions: #{actions.collect{|a| a.name}.join(", ")}"
else
actions.first
end
end
|