module Transformation

Public Class Methods

execute(identified_session) click to toggle source

Your code goes here…

# File lib/log_analysis/transformation.rb, line 9
def self.execute(identified_session)
  map_uri = ['-']
  transform = identified_session.each_with_object({}) do |v, hash|
    uries = v.records.map(&:uri)
    uries.each { |i| map_uri.push(i) unless map_uri.include?(i) }
    if hash.key?(v.user.host.to_s)
      uries.size == 1 ? hash[v.user.host.to_s] += v.records.map { |i| map_uri.index(i.uri) } : hash[v.user.host.to_s].push(v.records.map { |i| map_uri.index(i.uri) })
    else
      hash.merge!(v.user.host.to_s => v.records.map { |i| map_uri.index(i.uri) })
    end
  end

  File.open(LogAnalysis::MAP_URI_FILE_PATH, 'w+') { |f| f.write(map_uri.join(' ')) }
  transform
end