Class: Record

Inherits:
Object
  • Object
show all
Defined in:
lib/log_analysis/model/record.rb

Constant Summary collapse

DATA_TYPE =
%w[.txt .json .js .css .jpg .jpeg .gif .woff2 .ico .png .bmp .mp3 .wav .avi .mpeg .vmw .mpg .map .pdf .doc .svg .otf].freeze
REGEX_BOT =
/facebookexternalhit|Mediapartners-Google|AWS|-|Crawler|spider|Detection/.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Record

Returns a new instance of Record.



31
32
33
34
# 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

Instance Attribute Details

#apptimeObject

Returns the value of attribute apptime.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def apptime
  @apptime
end

#cacheObject

Returns the value of attribute cache.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def cache
  @cache
end

#forwardedforObject

Returns the value of attribute forwardedfor.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def forwardedfor
  @forwardedfor
end

#forwardedprotoObject

Returns the value of attribute forwardedproto.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def forwardedproto
  @forwardedproto
end

#hostObject

Returns the value of attribute host.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def host
  @host
end

#methodObject

Returns the value of attribute method.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def method
  @method
end

#paramsObject (readonly)

Returns the value of attribute params.



26
27
28
# File 'lib/log_analysis/model/record.rb', line 26

def params
  @params
end

#refererObject

Returns the value of attribute referer.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def referer
  @referer
end

#reqObject

Returns the value of attribute req.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def req
  @req
end

#reqtimeObject

Returns the value of attribute reqtime.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def reqtime
  @reqtime
end

#request_lengthObject

Returns the value of attribute request_length.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def request_length
  @request_length
end

#runtimeObject

Returns the value of attribute runtime.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def runtime
  @runtime
end

#sizeObject

Returns the value of attribute size.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def size
  @size
end

#statusObject

Returns the value of attribute status.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def status
  @status
end

#timeObject

Returns the value of attribute time.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def time
  @time
end

#uaObject

Returns the value of attribute ua.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def ua
  @ua
end

#uriObject

Returns the value of attribute uri.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def uri
  @uri
end

#userObject

Returns the value of attribute user.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def user
  @user
end

#vhostObject

Returns the value of attribute vhost.



7
8
9
# File 'lib/log_analysis/model/record.rb', line 7

def vhost
  @vhost
end

Instance Method Details

#method_get?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/log_analysis/model/record.rb', line 40

def method_get?
  method == 'GET'
end

#robot?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/log_analysis/model/record.rb', line 50

def robot?
  ua.bot? || ua.to_s.match?(REGEX_BOT)
end

#status_200?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/log_analysis/model/record.rb', line 36

def status_200?
  status == 200
end

#uri_without_dataObject



44
45
46
47
48
# 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