class Orchestra::Recording
Attributes
input[RW]
output[RW]
services[R]
Public Class Methods
fresh()
click to toggle source
# File lib/orchestra/recording.rb, line 3 def self.fresh services = Hash.new do |hsh, service_name| hsh[service_name] = [] end new services end
new(services)
click to toggle source
# File lib/orchestra/recording.rb, line 11 def initialize services @services = services end
Public Instance Methods
[](attr)
click to toggle source
# File lib/orchestra/recording.rb, line 28 def [] attr to_h[attr] end
replay(operation, override_input = {})
click to toggle source
# File lib/orchestra/recording.rb, line 44 def replay operation, override_input = {} replayed_services = {} services.each do |svc, service_recording| replayed_services[svc] = Playback.build service_recording end conductor = Conductor.new replayed_services conductor.execute operation, input.merge(override_input) end
to_h()
click to toggle source
# File lib/orchestra/recording.rb, line 32 def to_h { :input => input, :output => output, :service_recordings => services, } end
to_json(generator)
click to toggle source
# File lib/orchestra/recording.rb, line 40 def to_json generator generator.generate to_h end
update(event_name, *args)
click to toggle source
# File lib/orchestra/recording.rb, line 15 def update event_name, *args case event_name when :service_accessed then service_name, recording = args @services[service_name] << recording when :operation_entered then _, @input = args when :operation_exited then _, @output = args else end end