Module: BucketCake::TimeHelper

Included in:
Base::Range, Base::Realtime
Defined in:
lib/bucket_cake/time_helper.rb

Instance Method Summary collapse

Instance Method Details

#assert_time(time) ⇒ Object



21
22
23
24
# File 'lib/bucket_cake/time_helper.rb', line 21

def assert_time(time)
  raise 'Invalid time: must be a Time object' unless time.is_a?(Time)
  raise 'Invalid time: must be at start of hour' if time.beginning_of_hour != time
end

#hour_cursor(prefix, time) ⇒ Object



4
5
6
# File 'lib/bucket_cake/time_helper.rb', line 4

def hour_cursor(prefix, time)
  "#{prefix}/#{time.utc.strftime('%Y/%m/%d/%H')}.gz"
end

#hour_keys(prefix, start_time, end_time) ⇒ Object



12
13
14
15
16
17
18
19
# File 'lib/bucket_cake/time_helper.rb', line 12

def hour_keys(prefix, start_time, end_time)
  Enumerator.new do |y|
    while start_time < end_time
      y << hour_cursor(prefix, start_time)
      start_time += 1.hour
    end
  end
end

#minute_cursor(prefix, time) ⇒ Object



8
9
10
# File 'lib/bucket_cake/time_helper.rb', line 8

def minute_cursor(prefix, time)
  "#{prefix}/#{time.utc.strftime('%Y/%m/%d/%H%M')}.gz"
end