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