Sha256: 23e623ffff251fa2948781a7da02f9d2c1dfea5a39dc22be6e180dd0025216bc

Contents?: true

Size: 1.4 KB

Versions: 6

Compression:

Stored size: 1.4 KB

Contents

module CellSet
  class Member
    ATTRIBUTES = [:caption, :childMembers, :depth, :description, :dimension, :expression, :hierarchy, :level, :memberType, \
                  :name, :ordinal, :parentMember, :uniqueName]

    include Attributes
    include ActiveModel::Serializers::JSON
    include ActiveModel::Serializers::Xml
    include Comparable
    self.include_root_in_json = false

    def <=>(other)
      if other.is_a?(self.class)
        @ordinal <=> other.ordinal
      else
        nil
      end
    end

    def ancestorMembers
      raise NotImplementedError
    end

    def between?(min, max)
      @ordinal <= min || @ordinal >= max
    end

    def childMemberCount
      raise NotImplementedError
    end

    def all?
      raise NotImplementedError
    end

    def calculated?
      raise NotImplementedError
    end

    def calculatedInQuery?
      raise NotImplementedError
    end

    def childOrEqualTo?(member)
      raise NotImplementedError
    end

    def from_json(*)
      super.tap{|obj| obj.freeze}
    end

    def hidden?
      raise NotImplementedError
    end

    def initialize(*)
      @childMembers = []
      super
    end

    def ordinal=(ordinal)
      @ordinal = if ordinal.is_a?(Fixnum)
        ordinal
      elsif ordinal.is_a?(String)
        Integer(ordinal)
      else
        raise ArgumentError
      end
  end

    def visible?
      raise NotImplementedError
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cell_set-0.2.3 lib/cell_set/member.rb
cell_set-0.2.2 lib/cell_set/member.rb
cell_set-0.2.1 lib/cell_set/member.rb
cell_set-0.2.0 lib/cell_set/member.rb
cell_set-0.1.4 lib/cell_set/member.rb
cell_set-0.1.3 lib/cell_set/member.rb