class Report::Summary
Attributes
current_end[RW]
current_start[RW]
previous_end[RW]
previous_start[RW]
Public Class Methods
new(current_start, current_end, previous_start, previous_end)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 45 def initialize(current_start, current_end, previous_start, previous_end) @current_start = current_start @current_end = current_end @previous_start = previous_start @previous_end = previous_end @items = [] end
Public Instance Methods
<<(item)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 53 def <<(item) @items << item end
current_count(&selector)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 65 def current_count(&selector) count_from(current_items, &selector) end
current_items()
click to toggle source
# File lib/pagerduty_tools/report.rb, line 57 def current_items select_between?(current_start, current_end) end
current_summary(&selector)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 73 def current_summary(&selector) summarize(current_items, &selector) end
pct_change(&selector)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 81 def pct_change(&selector) old_value = previous_count(&selector) new_value = current_count(&selector) Report.pct_change old_value, new_value end
previous_count(&selector)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 69 def previous_count(&selector) count_from(previous_items, &selector) end
previous_items()
click to toggle source
# File lib/pagerduty_tools/report.rb, line 61 def previous_items select_between?(previous_start, previous_end) end
previous_summary(&selector)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 77 def previous_summary(&selector) summarize(previous_items, &selector) end
Private Instance Methods
count_from(collection) { |item| ... }
click to toggle source
# File lib/pagerduty_tools/report.rb, line 99 def count_from(collection) if block_given? return collection.count {|item| yield item } else return collection.count end end
select_between?(a, b)
click to toggle source
# File lib/pagerduty_tools/report.rb, line 107 def select_between?(a, b) @items.select {|item| item.between?(a, b) } end
summarize(collection) { |item, summary| ... }
click to toggle source
# File lib/pagerduty_tools/report.rb, line 89 def summarize(collection) summary = Hash.new(0) collection.each do |item| yield item, summary end return summary.sort {|a, b| b[1] <=> a[1] } end