#!/usr/bin/env ruby
class Parameters
attr_accessor :line
def initialize(line)
self.line = line.match(/^ Parameters: \{(.*)\}$/)[1]
end
def search_parameter(p)
begin
self.line.match(Regexp.new("\"#{p}\"=>\"(.*)\"\"?"))[1].split(", \"")[0].gsub("\"","")
rescue
nil
end
end
def method_missing(method)
search_parameter(method.to_s)
end
end
# Caso seja digitada uma data, como 2008-07-05, por exemplo, ele localizará dados com esta data.
# Caso contrário, ele irá procurar dados do dia anterior.
ARGV[0] ||= Time.mktime(Time.now.year,Time.now.month,Time.now.day-1).strftime("%Y-%m-%d")
re = Regexp.new '^Processing SearchsController#research \(for (.*) at ' << ARGV[0] << ' (.*)\).*$'
log = File.open("log/production.log").readlines.select { |l| l =~ /research/ }
log.each_with_index do |line,index|
date = line.match(re)
if !date.nil? and date.size > 1
puts "\n#{date[2]}"
params = Parameters.new(log[index+1])
puts "What: #{params.what}"
puts "Where: #{params.where}"
puts "Raio: #{params.raio}"
end
end