class SmsLogparser::LogMessage

Attributes

message[R]

Public Class Methods

get_type(user_agent) click to toggle source

see developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent for mobile browser detection

# File lib/sms-logparser/log_message.rb, line 21
def self.get_type(user_agent)
  case user_agent
  when /.*(iTunes).*/i
    'PODCAST'
  when /.*(Mobi|IEMobile|Mobile Safari|iPhone|iPod|iPad|Android|BlackBerry|Opera Mini).*/
    'MOBILE'
  else
    'WEBCAST'
  end
end
match?(message) click to toggle source
# File lib/sms-logparser/log_message.rb, line 11
def self.match?(message)
  if match = message.match(/\/content\/\d+\/\d+\/\d+\/(\S*).+(200|206)/)
    # ignore detect.mp4
    return true unless match[1] =~ /detect.mp4/i
  end
  false
end
new(message) click to toggle source
# File lib/sms-logparser/log_message.rb, line 6
def initialize(message)
  # reove double slashes from message
  @message = message.squeeze('/')
end

Public Instance Methods

account_info() click to toggle source
# File lib/sms-logparser/log_message.rb, line 76
def account_info
  {
    customer_id: customer_id,
    author_id: author_id,
    project_id: project_id
  }
end
args() click to toggle source
# File lib/sms-logparser/log_message.rb, line 56
def args
  match[5][1..-1] if match && match[5]
end
author_id() click to toggle source
# File lib/sms-logparser/log_message.rb, line 44
def author_id
  match[2] if match
end
bytes() click to toggle source
# File lib/sms-logparser/log_message.rb, line 64
def bytes
  match[7].to_i if match
end
customer_id() click to toggle source
# File lib/sms-logparser/log_message.rb, line 40
def customer_id
  match[1] if match
end
file() click to toggle source
# File lib/sms-logparser/log_message.rb, line 52
def file
  match[4] if match
end
file_extname() click to toggle source
# File lib/sms-logparser/log_message.rb, line 68
def file_extname
  File.extname(file) if file
end
match() click to toggle source
# File lib/sms-logparser/log_message.rb, line 36
def match
  @match ||= @message.match /\/content\/(\d+)\/(\d+)\/+(\d+)\/(\w+\.\w+)*(\?\S*)*\s.*\"\s(\d+)\s(\d+).+"(.*)"$/
end
project_id() click to toggle source
# File lib/sms-logparser/log_message.rb, line 48
def project_id
  match[3] if match
end
status() click to toggle source
# File lib/sms-logparser/log_message.rb, line 60
def status
  match[6].to_i if match
end
to_h() click to toggle source
# File lib/sms-logparser/log_message.rb, line 94
def to_h
  account_info.merge(transfer_info)
end
transfer_info() click to toggle source
# File lib/sms-logparser/log_message.rb, line 84
def transfer_info
  {
    status: status,
    bytes: bytes,
    file: file,
    file_extname: file_extname,
    user_agent: user_agent
  }
end
type() click to toggle source
# File lib/sms-logparser/log_message.rb, line 32
def type
  LogMessage.get_type(user_agent)
end
user_agent() click to toggle source
# File lib/sms-logparser/log_message.rb, line 72
def user_agent
  match[8] if match
end