class Rreplay::OutputBuilder
Public Class Methods
new(style: :json)
click to toggle source
@param style [Symbol] :json or :string
# File lib/rreplay/replay_runner.rb, line 64 def initialize(style: :json) @builder = case style when :json method(:build_json) else method(:build_string) end end
Public Instance Methods
call(record, result)
click to toggle source
@param record [Hash] @param result [Http::Result]
# File lib/rreplay/replay_runner.rb, line 75 def call(record, result) response_hash = { status: result.response.code, headers: record['response']['headers'].reduce({}) do |acc, (key, _)| acc.merge({key => result.response[key]}) end, body: Array(result.response.body).join(''), } @builder.call(record, result.response_time, response_hash) end
Private Instance Methods
build_json(record, response_time, actual_response)
click to toggle source
# File lib/rreplay/replay_runner.rb, line 89 def build_json(record, response_time, actual_response) { uuid: record['uuid'], response: { actual: { response_time: response_time, response: actual_response, }, recorded: { response_time: record['response_time'], record: record['response'], } } } end
build_string(record, response_time, actual_response)
click to toggle source
# File lib/rreplay/replay_runner.rb, line 105 def build_string(record, response_time, actual_response) <<~EOF #{record['uuid']}: * request: #{record['request'].to_json} * response(actual): #{response_time} sec #{actual_response.to_json} * response(recorded): #{record['response_time']} sec #{record['response'].to_json} EOF end