lib/asynchronic/queue_engine/synchronic.rb in asynchronic-3.0.3 vs lib/asynchronic/queue_engine/synchronic.rb in asynchronic-4.0.0

- old
+ new

@@ -3,59 +3,67 @@ class Synchronic attr_reader :stubs def initialize(options={}) - @environment = options[:environment] + @options = options @stubs = {} end def default_queue Asynchronic.default_queue end def environment - @environment ||= Asynchronic.environment + @environment ||= options.fetch(:environment, Asynchronic.environment) end def [](name) Queue.new self end def stub(job, &block) - @stubs[job] = block + stubs[job] = block end def asynchronic? false end def active_connections [Asynchronic.connection_name] end + private + attr_reader :options + + class Queue def initialize(engine) @engine = engine end def push(message) - process = @engine.environment.load_process(message) + process = engine.environment.load_process(message) - if @engine.stubs[process.type] + if engine.stubs[process.type] job = process.job - block = @engine.stubs[process.type] + block = engine.stubs[process.type] process.define_singleton_method :job do MockJob.new job, process, &block end end process.execute end + private + + attr_reader :engine + end class MockJob < TransparentProxy @@ -64,14 +72,18 @@ @process = process @block = block end def call - @block.call @process + block.call process end def before_finalize end + + private + + attr_reader :process, :block end end end \ No newline at end of file