class Messages::HerokuRouter

Constants

ATTRIBUTES

2016-10-12T11:54:02.902066+00:00 heroku: at=info method=GET path=“/javascript/popup.js?email=graham.dodgson@gmail.com&locale=UK&name=Graham%20Dodgson” host=merrell.refer.gift request_id=bf7a23e0-3c5c-4df2-9eff-f7812d96f665 fwd=“62.252.0.138” dyno=web.1 connect=0ms service=126ms status=200 bytes=1414

Public Class Methods

attributes() click to toggle source
# File lib/log_query/messages/heroku_router.rb, line 12
def self.attributes
  ATTRIBUTES
end
new(message) click to toggle source
# File lib/log_query/messages/heroku_router.rb, line 16
def initialize(message)
  ATTRIBUTES.
    select { |attr| message.include?(" #{attr}=") }.
    map do |attribute|
      value = message.match(/#{attribute}=([^\s]*|"[^"]*")/)[1]
      value = value.match(/"?([^"]*)"?/)[1]
      value = parse_value(value, attribute)
      [attribute, value]
    end.each do |(key, value)|
      instance_variable_set("@#{key}", value)
    end
end

Public Instance Methods

parse_value(value, attribute) click to toggle source
# File lib/log_query/messages/heroku_router.rb, line 30
def parse_value(value, attribute)
  case attribute
  when :sock, :at, :code, :desc, :method, :host, :request_id, :fwd, :dyno, :status
    value
  when :path
    value.split('?')[0].gsub(/-[a-f0-9]{64}/, '')
  when :connect, :service
    Integer(value.match(/([0-9]*)ms/)[1])
  when :bytes
    Integer(value) rescue 0
  end
end