lib/reactor/workers/event_worker.rb in reactor-0.15.1 vs lib/reactor/workers/event_worker.rb in reactor-0.16.0
- old
+ new
@@ -6,60 +6,10 @@
=end
module Reactor
module Workers
class EventWorker
- include Sidekiq::Worker
+ include Reactor::Workers::Configuration
- CONFIG = [:source, :action, :async, :delay]
-
- class_attribute *CONFIG
-
- def self.configured?
- CONFIG.all? {|field| !self.send(field).nil? }
- end
-
- def self.perform_where_needed(data)
- if delay > 0
- perform_in(delay, data)
- elsif async
- perform_async(data)
- else
- new.perform(data)
- end
- source
- end
-
- def configured?
- self.class.configured?
- end
-
- def perform(data)
- raise_unconfigured! unless configured?
- return :__perform_aborted__ unless should_perform?
- event = Reactor::Event.new(data)
- if action.is_a?(Symbol)
- source.send(action, event)
- else
- action.call(event)
- end
- end
-
- def should_perform?
- if Reactor.test_mode?
- Reactor.test_mode_subscriber_enabled? source
- else
- true
- end
- end
-
- private
-
- def raise_unconfigured!
- settings = Hash[CONFIG.map {|s| [s, self.class.send(s)] }]
- raise UnconfiguredWorkerError.new(
- "#{self.class.name} is not properly configured! Here are the settings: #{settings}"
- )
- end
end
end
end