lib/green-button-data/interval_block.rb
module GreenButtonData
class IntervalBlock < Entry
include Utilities
attr_accessor :length, :starts_at, :ends_at, :duration
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
##
# Returns an array representation of all the interval data
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
end
end