Sha256: 3708441f753a855443e223671a2a7664531658ffa8ba468dc38a68219ac08fc5

Contents?: true

Size: 947 Bytes

Versions: 3

Compression:

Stored size: 947 Bytes

Contents

module Expressir
  module Express
    class AggregateDimension
      attr_accessor :aggrtype, :lower, :upper, :isUnique, :isOptionalArray

      def initialize(options = {})
        @aggrtype = "SET"
        @lower = "0"
        @upper = "?"
        @isUnique = false
        @isOptionalArray = false

        @options = options
      end

      def parse
        document = @options.fetch(:document, nil)
        extract_attributes(document) if document

        self
      end

      def self.parse(document)
        new(document: document).parse
      end

      private

      def extract_attributes(document)
        @aggrtype = document.attributes["type"]
        @lower = document.attributes["lower"]
        @upper = document.attributes["upper"]
        @isUnique = document.attributes["unique"] == "YES"
        @isOptionalArray = document.attributes["optional"] == "YES"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
expressir-0.2.6 lib/expressir/express/aggregate_dimension.rb
expressir-0.2.5-x64-mingw32 lib/expressir/express/aggregate_dimension.rb
expressir-0.2.4-x64-mingw32 lib/expressir/express/aggregate_dimension.rb