Sha256: 7ccf6311f305370e1521e6c79ecdd2c21867e57a82890de52d72468a3d8bf321

Contents?: true

Size: 941 Bytes

Versions: 3

Compression:

Stored size: 941 Bytes

Contents

module Samuel
  module Diary
    extend self

    def record_request(http, request, time_requested)
      @requests ||= []
      @requests.push({:request => request, :time_requested => time_requested})
    end

    def record_response(http, request, response, time_responded)
      time_requested = @requests.detect { |r| r[:request] == request }[:time_requested]
      @requests.reject! { |r| r[:request] == request }
      log_request_and_response(http, request, response, time_requested, time_responded)
    end

    private

    def log_request_and_response(http, request, response, time_started, time_ended)
      log_entry_class = case http.class.to_s
        when "Net::HTTP"  then LogEntries::NetHttp
        when "HTTPClient" then LogEntries::HttpClient
        else raise NotImplementedError
      end
      log_entry = log_entry_class.new(http, request, response, time_started, time_ended)
      log_entry.log!
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
samuel-0.3.2 lib/samuel/diary.rb
samuel-0.3.1 lib/samuel/diary.rb
samuel-0.3.0 lib/samuel/diary.rb