class Record
Constants
- DATA_TYPE
- REGEX_BOT
Attributes
apptime[RW]
cache[RW]
forwardedfor[RW]
forwardedproto[RW]
host[RW]
method[RW]
params[R]
referer[RW]
req[RW]
reqtime[RW]
request_length[RW]
runtime[RW]
size[RW]
status[RW]
time[RW]
ua[RW]
uri[RW]
user[RW]
vhost[RW]
Public Class Methods
new(params)
click to toggle source
# File lib/log_analysis/model/record.rb, line 31 def initialize(params) @params = params record_params.keys.each { |key| instance_variable_set("@#{key}", record_params[key]) } end
Public Instance Methods
method_get?()
click to toggle source
# File lib/log_analysis/model/record.rb, line 40 def method_get? method == 'GET' end
robot?()
click to toggle source
# File lib/log_analysis/model/record.rb, line 50 def robot? ua.bot? || ua.to_s.match?(REGEX_BOT) end
status_200?()
click to toggle source
# File lib/log_analysis/model/record.rb, line 36 def status_200? status == 200 end
uri_without_data()
click to toggle source
# File lib/log_analysis/model/record.rb, line 44 def uri_without_data return false if uri.nil? || uri.end_with?(*DATA_TYPE) true end
Private Instance Methods
record_params()
click to toggle source
# File lib/log_analysis/model/record.rb, line 56 def record_params {}.tap do |p| p['time'] = Time.parse(@params['time'].split.first.sub(/:/, ' ')) || nil p['host'] = IPAddr.new(@params['host']) p['status'] = @params['status'].to_i || 0 p['size'] = @params['size'].to_i || 0 p['request_length'] = @params['request_length'].to_i || 0 p['req'] = validate_string(@params['req']) p['method'] = validate_string(@params['method']) p['uri'] = validate_string(@params['uri']) p['referer'] = validate_string(@params['referer']) p['ua'] = UserAgent.parse(@params['ua']) p['reqtime'] = @params['reqtime'].to_f p['runtime'] = @params['runtime'].to_f p['apptime'] = @params['apptime'].to_f p['cache'] = validate_string(@params['cache']) p['vhost'] = validate_string(@params['vhost']) p['user'] = @params['user'] || nil p['forwardedfor'] = validate_string(@params['forwardedfor']) p['forwardedproto'] = validate_string(@params['forwardedproto']) end rescue IPAddr::InvalidAddressError => e puts e end
validate_string(value)
click to toggle source
# File lib/log_analysis/model/record.rb, line 81 def validate_string(value) value == '-' ? nil : value end