class SentrySummary::Aggregator
Public Class Methods
new(client)
click to toggle source
# File lib/sentry-summary/aggregator.rb, line 5 def initialize(client) @client = client end
Public Instance Methods
events_by_route(since = "24 hours ago")
click to toggle source
# File lib/sentry-summary/aggregator.rb, line 9 def events_by_route(since = "24 hours ago") issues = client.issues("api", since) issues.each_with_object({}) do |issue, hash| events = client.events(issue.id) events.each do |event| hash[event.route] ||= {} closest_title = closest_title(hash[event.route].keys, event.metadata[:value]) hash[event.route][closest_title] = (hash[event.route][closest_title] || 0) + 1 end hash end end
events_by_type(since = "24 hours ago")
click to toggle source
# File lib/sentry-summary/aggregator.rb, line 26 def events_by_type(since = "24 hours ago") issues = client.issues("api", since) issues.each_with_object({}) do |issue, hash| events = client.events(issue.id) events.each do |event| type = event.metadata[:value] type = closest_title(hash.keys, type) hash[type] ||= {} hash[type][event.route] = (hash[type][event.route] || 0) + 1 end hash end end
Private Instance Methods
client()
click to toggle source
# File lib/sentry-summary/aggregator.rb, line 54 def client @client end
closest_title(titles, candidate)
click to toggle source
# File lib/sentry-summary/aggregator.rb, line 46 def closest_title(titles, candidate) closest_title = titles.max_by { |title| title.similar(candidate) } return candidate unless closest_title && closest_title.similar(candidate) > 80 closest_title end