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