module NginxTail::HttpReferer
Constants
- UNKNOWN_REFERER
to easily identify external referers, for filtering and formatting purposes
e.g. Regexp.compile(‘^http(s)?://(www.)?MY_WEBSITE_NAME.com’)
Public Class Methods
add_internal_referer(internal_referer)
click to toggle source
# File lib/ntail/http_referer.rb, line 29 def self.add_internal_referer(internal_referer) raise "Cannot add unkown HTTP referer" if self.unknown_referer? internal_referer (@@internal_referers << internal_referer).uniq! end
external_referer?(http_referer)
click to toggle source
# File lib/ntail/http_referer.rb, line 42 def self.external_referer?(http_referer) !self.unknown_referer?(http_referer) && !self.internal_referer?(http_referer) end
internal_referer?(http_referer)
click to toggle source
# File lib/ntail/http_referer.rb, line 38 def self.internal_referer?(http_referer) !self.unknown_referer?(http_referer) && !@@internal_referers.detect { |referer| referer.match(http_referer) }.nil? end
internal_referers()
click to toggle source
mainly (solely?) for testing purposes…
# File lib/ntail/http_referer.rb, line 25 def self.internal_referers() @@internal_referers.dup end
reset_internal_referers()
click to toggle source
mainly (solely?) for testing purposes…
# File lib/ntail/http_referer.rb, line 20 def self.reset_internal_referers() while !@@internal_referers.empty? ; @@internal_referers.pop ; end end
to_referer_s(http_referer)
click to toggle source
# File lib/ntail/http_referer.rb, line 46 def self.to_referer_s(http_referer) if self.unknown_referer? http_referer http_referer else begin # try to parse it as a URI, but with default value if un-parsable URI.parse(http_referer).host || http_referer rescue URI::InvalidURIError http_referer end end end
unknown_referer?(http_referer)
click to toggle source
# File lib/ntail/http_referer.rb, line 34 def self.unknown_referer?(http_referer) http_referer == UNKNOWN_REFERER end
Public Instance Methods
external_referer?()
click to toggle source
# File lib/ntail/http_referer.rb, line 72 def external_referer? self.class.external_referer?(self.http_referer) end
internal_referer?()
click to toggle source
# File lib/ntail/http_referer.rb, line 68 def internal_referer? self.class.internal_referer?(self.http_referer) end
to_referer_s()
click to toggle source
# File lib/ntail/http_referer.rb, line 76 def to_referer_s self.class.to_referer_s(self.http_referer) end
unknown_referer?()
click to toggle source
# File lib/ntail/http_referer.rb, line 64 def unknown_referer? self.class.unknown_referer?(self.http_referer) end