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
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