class VpsbClient::Metrics::IntervalConfig

Public Class Methods

new(start_time, interval_length, options={}) click to toggle source
# File lib/vpsb_client/metrics/interval_config.rb, line 4
def initialize(start_time, interval_length, options={})
  @start_time = start_time
  @interval_length = interval_length
  @force = options.fetch(:force, false)
end

Public Instance Methods

aligned?() click to toggle source
# File lib/vpsb_client/metrics/interval_config.rb, line 10
def aligned?
  if @force
    false
  elsif @interval_length < 86400
    true
  else
    false
  end
end
length() click to toggle source
# File lib/vpsb_client/metrics/interval_config.rb, line 34
def length
  @interval_length
end
min_end_time() click to toggle source
# File lib/vpsb_client/metrics/interval_config.rb, line 30
def min_end_time
  min_start_time + @interval_length
end
min_start_time() click to toggle source
# File lib/vpsb_client/metrics/interval_config.rb, line 20
def min_start_time
  if @force
    @start_time
  elsif aligned?
    lower_boundary_time(@start_time)
  else
    @start_time
  end
end

Private Instance Methods

lower_boundary_time(t) click to toggle source
# File lib/vpsb_client/metrics/interval_config.rb, line 40
def lower_boundary_time(t)
  Time.at((t.to_i / @interval_length.to_i) * @interval_length.to_i)
end