Sha256: d2a5454710ef7daf3f69652bc2a5e3f888c377319f27848fbe84a069be4e05b0

Contents?: true

Size: 1021 Bytes

Versions: 8

Compression:

Stored size: 1021 Bytes

Contents

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

        result << reading
      end

      return result
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
green-button-data-0.5.0 lib/green-button-data/interval_block.rb
green-button-data-0.4.2 lib/green-button-data/interval_block.rb
green-button-data-0.4.1 lib/green-button-data/interval_block.rb
green-button-data-0.3.2 lib/green-button-data/interval_block.rb
green-button-data-0.4.0 lib/green-button-data/interval_block.rb
green-button-data-0.4.0.alpha.pre.1 lib/green-button-data/interval_block.rb
green-button-data-0.3.1 lib/green-button-data/interval_block.rb
green-button-data-0.3.0 lib/green-button-data/interval_block.rb