class WhisperCalc

Calculator Carbon / Whisper storage requirements

Attributes

aggregation[R]

Public Class Methods

new(aggregation) click to toggle source
# File lib/whisper_calc.rb, line 8
def initialize(aggregation)
  @aggregation = aggregation
end

Public Instance Methods

to_h() click to toggle source
# File lib/whisper_calc.rb, line 12
def to_h
  Hash[aggregation.split(',').map { |x| x.split(':').map(&:strip) }]
end
to_i() click to toggle source
# File lib/whisper_calc.rb, line 16
def to_i
  to_h.inject(0) do |i, (k, v)|
    i + frequency_as_i(v) / frequency_as_i(k)
  end
end

Private Instance Methods

frequency_as_i(v) click to toggle source
# File lib/whisper_calc.rb, line 24
def frequency_as_i(v)
  num, unit = v.scan(/(\d+)(.)$/).first
  num = num.to_i

  case unit
  when 's'
    num.seconds
  when 'm'
    num.minutes
  when 'h'
    num.hours
  when 'd'
    num.days
  when 'y'
    num.years
  end
end