class Mengpaneel::Replayer

Attributes

manager[R]

Public Class Methods

new(manager) click to toggle source
# File lib/mengpaneel/replayer.rb, line 7
def initialize(manager)
  @manager = manager
end

Public Instance Methods

run() click to toggle source
# File lib/mengpaneel/replayer.rb, line 11
def run
  return unless manager.controller
  
  delayed_calls = Delayer.new(manager.controller).load!

  Manager::MODES.each do |mode|
    next unless delayed_calls.has_key?(mode)

    calls = delayed_calls[mode] || []

    manager.send(mode) do
      replay_calls(calls)
    end
  end
end

Private Instance Methods

replay_calls(calls) click to toggle source
# File lib/mengpaneel/replayer.rb, line 28
def replay_calls(calls)
  proxy = manager.call_proxy

  calls.each do |method_names, args|
    method_name = method_names.pop

    object = method_names.inject(proxy) { |object, method_name| object.public_send(method_name) }
    
    object.public_send(method_name, *args)
  end
end