class Cb::Responses::Timing

Attributes

elapsed[R]
response[R]
response_sent[R]
should_raise_on_parse_fail[R]

Public Class Methods

new(response, raise_on_parse_fail = true) click to toggle source
# File lib/cb/responses/timing.rb, line 16
def initialize(response, raise_on_parse_fail = true)
  @response = response
  @should_raise_on_parse_fail = raise_on_parse_fail
  post_initialize
end

Private Instance Methods

elapsed_node() click to toggle source
# File lib/cb/responses/timing.rb, line 55
def elapsed_node
  'TimeElapsed'
end
elapsed_node_parsable?() click to toggle source
# File lib/cb/responses/timing.rb, line 45
def elapsed_node_parsable?
  response.include?(elapsed_node) &&
    response[elapsed_node].respond_to?(:to_f) &&
    timing_parses_to_nonzero?
end
parsed_response_sent() click to toggle source
# File lib/cb/responses/timing.rb, line 37
def parsed_response_sent
  DateTime.parse(response['TimeResponseSent']) rescue nil
end
parsed_time_elapsed() click to toggle source
# File lib/cb/responses/timing.rb, line 41
def parsed_time_elapsed
  elapsed_node_parsable? ? response[elapsed_node].to_f : nil
end
post_initialize() click to toggle source
# File lib/cb/responses/timing.rb, line 26
def post_initialize
  raise_on_empty_timing_info
  @response_sent = parsed_response_sent
  @elapsed       = parsed_time_elapsed
end
raise_on_empty_timing_info() click to toggle source
# File lib/cb/responses/timing.rb, line 32
def raise_on_empty_timing_info
  should_raise = (response.nil? || !response.respond_to?(:[])) && should_raise_on_parse_fail
  fail ExpectedResponseFieldMissing.new('Missing/malformed timing info!') if should_raise
end
timing_parses_to_nonzero?() click to toggle source
# File lib/cb/responses/timing.rb, line 51
def timing_parses_to_nonzero?
  response[elapsed_node].to_f != 0.0
end