class Cyclop::Action
Public Class Methods
find_by_queue(queue)
click to toggle source
# 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
inherited(klass)
click to toggle source
# File lib/cyclop/action.rb, line 4 def self.inherited(klass) @@actions << klass end
perform(*args)
click to toggle source
# File lib/cyclop/action.rb, line 26 def self.perform(*args) raise NotImplementedError end
queues()
click to toggle source
# File lib/cyclop/action.rb, line 22 def self.queues [] end
to_s()
click to toggle source
# File lib/cyclop/action.rb, line 30 def self.to_s "#{name}: #{queues.inspect}" end