class Mutest::Parallel::Worker
Parallel
execution worker
Public Class Methods
run(attributes)
click to toggle source
Run worker
@param [Hash<Symbol, Object>] attributes
@return [self]
# File lib/mutest/parallel/worker.rb, line 17 def self.run(attributes) new(attributes).run self end
Public Instance Methods
run()
click to toggle source
Worker
loop
@return [self]
rubocop:disable Lint/Loop
# File lib/mutest/parallel/worker.rb, line 29 def run begin parent.call(Actor::Message.new(:ready, mailbox.sender)) end until handle(mailbox.receiver.call) end
Private Instance Methods
handle(message)
click to toggle source
Handle job
@param [Message] message
@return [Boolean]
# File lib/mutest/parallel/worker.rb, line 42 def handle(message) # rubocop:disable Metrics/MethodLength type = message.type payload = message.payload case message.type when :job handle_job(payload) nil when :stop true else raise Actor::ProtocolError, "Unknown command: #{type.inspect}" end end
handle_job(job)
click to toggle source
Handle mutation
@param [Job] job
@return [undefined]
# File lib/mutest/parallel/worker.rb, line 62 def handle_job(job) result = processor.call(job.payload) parent.call( Actor::Message.new( :result, JobResult.new( job: job, payload: result ) ) ) end