class GreenButtonData::IntervalBlock

Attributes

duration[RW]
ends_at[RW]
length[RW]
starts_at[RW]

Public Class Methods

new(attributes) click to toggle source
Calls superclass method GreenButtonData::Entry::new
# File lib/green-button-data/interval_block.rb, line 7
def initialize(attributes)
  super

  @starts_at = @interval.starts_at local: true
  @ends_at = @interval.ends_at local: true
  @duration = @interval.duration
  @length = @interval_readings.size
end

Public Instance Methods

to_a() click to toggle source

Returns an array representation of all the interval data

# File lib/green-button-data/interval_block.rb, line 18
def to_a
  result = []

  @interval_readings.each do |interval_reading|
    reading = {
      starts_at: interval_reading.time_period.starts_at(local: true),
      ends_at: interval_reading.time_period.ends_at(local: true),
      duration: interval_reading.time_period.duration,
      value: interval_reading.value
    }

    reading[:cost] = interval_reading.cost if interval_reading.cost
    reading[:quality] = interval_reading.quality if interval_reading.quality
    reading[:tou] = interval_reading.tou if interval_reading.tou

    result << reading
  end

  return result
end