class Elb2Logstalgia::Entry

Public Class Methods

new(*args, &block) click to toggle source
Calls superclass method
# File lib/elb2logstalgia/entry.rb, line 28
def initialize(*args, &block)
  begin
    keys = [
      :timestamp,
      :hostname,
      :path,
      :response_code,
      :response_size,
      :success,
      :response_color,
      :referrer_url,
      :user_agent,
      :virtual_host,
      :pid,
    ]

    params_hash = {}

    input = *args[0]

    input.each do |pair|
      k = pair[0]
      v = pair[1]
      params_hash[k] = v
    end

    # now we can derive some additional values
    derived_params = _deriveParams(params_hash)

    super(derived_params)

  rescue StandardError => e
    raise e
  end
end

Public Instance Methods

output() click to toggle source
# File lib/elb2logstalgia/entry.rb, line 64
def output
  fields = [
    :timestamp,
    :hostname,
    :path,
    :response_code,
    :response_size,
    :success,
  ]

  fields.map {|x| self.fetch(x).to_s}.join('|')
end

Private Instance Methods

_deriveParams(params) click to toggle source
# File lib/elb2logstalgia/entry.rb, line 79
def _deriveParams(params)
  input = Hashie::Mash.new(params)
  derived = Hashie::Mash.new

  # calculate success from response code
  derived.success = input.response_code.to_i < 400 ? 1 : 0

  derived.merge(input)
end