class WSDirector::Task
Single client operator
Attributes
client[R]
global_holder[R]
protocol[R]
result[R]
steps[R]
Public Class Methods
new(config, global_holder:, result:)
click to toggle source
# File lib/wsdirector/task.rb, line 11 def initialize(config, global_holder:, result:) @ignore = config.fetch("ignore") @steps = config.fetch("steps") @global_holder = global_holder @result = result protocol_class = Protocols.get(config.fetch("protocol", "base")) @protocol = protocol_class.new(self) end
Public Instance Methods
run()
click to toggle source
# File lib/wsdirector/task.rb, line 21 def run connect! steps.each(&protocol) result.succeed rescue Error => e result.failed(e.message) end
sampled?(step)
click to toggle source
# File lib/wsdirector/task.rb, line 31 def sampled?(step) return true unless step["sample"] id, max = step["id"], step["sample"] result.track_sample(id, max) end
Private Instance Methods
connect!()
click to toggle source
# File lib/wsdirector/task.rb, line 43 def connect! protocol.init_client(ignore: @ignore) end