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