Sha256: bfd8d1ef8cd9457a4de05d31bf885fb186025671ea1102ac442ff09e6f9b90ad
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
module RequestLogAnalyzer::Filter # Filter to select or reject a specific field # Options # * <tt>:mode</tt> :reject or :accept. # * <tt>:field</tt> Specific field to accept or reject. # * <tt>:value</tt> Value that the field should match to be accepted or rejected. class Anonimize < Base def prepare end def generate_random_ip "#{rand(256)}.#{rand(256)}.#{rand(256)}.#{rand(256)}" end def anonymize_url(value) return value.sub(/^https?\:\/\/[A-Za-z0-9\.-]+\//, "http://example.com/") end def fuzz(value) value * ((75 + rand(50)) / 100.0) end def filter(request) return nil unless request request.attributes.each do |key, value| if key == :ip request.attributes[key] = generate_random_ip elsif key == :url request.attributes[key] = anonymize_url(value) elsif [ :duration, :view, :db, :type, :after_filters_time, :before_filters_time, :action_time].include?(key) request.attributes[key] = fuzz(value) end end return request end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
wvanbergen-request-log-analyzer-1.1.1 | lib/request_log_analyzer/filter/anonimize.rb |
request-log-analyzer-1.1.1 | lib/request_log_analyzer/filter/anonimize.rb |