module CovidPT::Utils

Public Instance Methods

cumulative_diff(a, b, start) click to toggle source
# File lib/covid_pt/utils.rb, line 15
def cumulative_diff(a, b, start)
  a.inject(start) do |acc, (key, value)|
    b_value = b[key] || 0
    a_value = value || 0

    acc[key] ||= {values: [a_value], differences: []}

    new_entries = {values: [b_value], differences: [b_value - a_value]}

    acc[key].merge(new_entries) { |_, old, new| old.concat(new) }
    acc
  end
end
diff(a, b) click to toggle source
# File lib/covid_pt/utils.rb, line 5
def diff(a, b)
  a.inject({}) do |acc, (k, v)|
    b_value = b[k] || 0
    a_value = v || 0

    acc[k] = { value: v, difference: a_value - b_value }
    acc
  end
end