jam-cloud/web/lib/tasks/gear.rake

60 lines
1.5 KiB
Ruby

namespace :gear do
task analyze: :environment do
successful = {types: {}}
Diagnostic.where("type = 'GEAR_SELECTION'").each do |diagnostic|
data = JSON.parse(diagnostic.data)
os = data["summary"]["os"] # MacOSX or Win32
success = data["summary"]["success"] # bool
if success
latency = data["summary"]["score"]["latencyScore"]["latency"]
id = data["summary"]["selectedDevice"]["input"]["info"]["id"]
displayName = data["summary"]["selectedDevice"]["input"]["info"]["displayName"]
type = data["summary"]["selectedDevice"]["input"]["info"]["type"]
store = successful[:types][type]
if !store
store = {}
successful[:types][type] = store
end
deviceData = store[id + ':' + latency.to_i.to_s]
if !deviceData
deviceData = {id: id, displayName: displayName, type: type, latency: latency, count: 0}
store[id + ':' + latency.to_i.to_s] = deviceData
end
deviceData[:count] = deviceData[:count] + 1
end
end
puts "TYPES:"
successful[:types].each do|type, hits|
puts "#{type}"
end
puts ""
puts ""
successful[:types].each do |type, hits|
results = hits.sort_by do |id_latency, deviceData|
deviceData[:latency]
end
puts "--------------- #{type} -----------------"
results.each do |result|
puts "#{result[1][:latency].to_i.to_s.rjust(2)} #{result[1][:displayName]}"
end
puts ""
puts ""
end
end
end