class Ritsudo::Request

Attributes

messages[R]
request_id[R]

Public Class Methods

grouping(raw_messages) click to toggle source
# File lib/ritsudo/request.rb, line 6
def self.grouping(raw_messages)
  messages = Ritsudo::Message.wrap(raw_messages)
  requests = messages.group_by { |message|
    message.param('requestId')
  }.map { |request_id, messages|
    Ritsudo::Request.new(request_id, messages)
  }
  requests
end
new(request_id, messages) click to toggle source
# File lib/ritsudo/request.rb, line 16
def initialize(request_id, messages)
  @request_id = request_id
  @messages = messages
end

Public Instance Methods

processing?() click to toggle source
# File lib/ritsudo/request.rb, line 35
def processing?
  sent_message && !finished_message
end
time() click to toggle source
# File lib/ritsudo/request.rb, line 21
def time
  return nil unless received_message && sent_message
  ((received_message.timestamp - sent_message.timestamp) * 1000) # msec
end
type() click to toggle source
# File lib/ritsudo/request.rb, line 54
def type
  sent_message&.param("type") || 'etc'
end
url() click to toggle source
# File lib/ritsudo/request.rb, line 26
def url
  if _url = sent_message&.url
    url = URI.parse(_url)
    url.to_s.sub(url.query.to_s, '')
  else
    nil
  end
end

Private Instance Methods

finished_message() click to toggle source
# File lib/ritsudo/request.rb, line 44
def finished_message
  @messages.find { |event| event.method == "Network.loadingFinished" }
end
received_message() click to toggle source
# File lib/ritsudo/request.rb, line 49
def received_message
  @messages.find { |event| event.method == "Network.responseReceived" }
end
sent_message() click to toggle source
# File lib/ritsudo/request.rb, line 39
def sent_message
  @messages.find { |message| message.method == "Network.requestWillBeSent" }
end