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