Sha256: ace4462e0bf91e9dd2d6a93acdf09a5dcf7da2ec36c29255dceebf52ddcb24fe

Contents?: true

Size: 1.56 KB

Versions: 5

Compression:

Stored size: 1.56 KB

Contents

module GreenButtonData
  module Parser
    class Authorization
      include SAXMachine
      include Utilities

      element :authorizedPeriod, class: Interval, as: :authorized_period
      element :publishedPeriod, class: Interval, as: :published_period

      element :expires_at, class: Integer do |epoch|
        Time.at(normalize_epoch(epoch)).utc.to_datetime
      end

      element :status, class: Integer

      def active?
        @status > 0
      end

      # TODO: Add scope parser
      element :scope

      element :resourceURI, as: :resource_uri
      element :authorizationURI, as: :authorization_uri

      # ESPI Namespacing
      element :'espi:authorizedPeriod', class: Interval, as: :authorized_period
      element :'espi:publishedPeriod', class: Interval, as: :published_period
      element :'espi:expires_at', class: Integer, as: :expires_at
      element :'espi:status', class: Integer, as: :status
      element :'espi:scope', as: :scope
      element :'espi:resourceURI', as: :resource_uri
      element :'espi:authorizationURI', as: :authorization_uri

      # Special case for PG&E which uses generic namespacing
      element :'ns0:authorizedPeriod', class: Interval, as: :authorized_period
      element :'ns0:publishedPeriod', class: Interval, as: :published_period
      element :'ns0:expires_at', class: Integer, as: :expires_at
      element :'ns0:status', class: Integer, as: :status
      element :'ns0:scope', as: :scope
      element :'ns0:resourceURI', as: :resource_uri
      element :'ns0:authorizationURI', as: :authorization_uri
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
green-button-data-0.2.1 lib/green-button-data/parser/authorization.rb
green-button-data-0.2.0 lib/green-button-data/parser/authorization.rb
green-button-data-0.1.2 lib/green-button-data/parser/authorization.rb
green-button-data-0.1.1 lib/green-button-data/parser/authorization.rb
green-button-data-0.1.0 lib/green-button-data/parser/authorization.rb