class MDQuery::Model::DimensionModel

Attributes

key[R]
label[R]
segment_models[R]

Public Class Methods

new(attrs) click to toggle source
# File lib/mdquery/model.rb, line 117
def initialize(attrs)
  MDQuery::Util.assign_attributes(self, attrs, [:key, :label, :segment_models])
  # validate # don't call validate, it's called by the DSL builder
end

Public Instance Methods

index_list(prefixes=nil) click to toggle source

for each prefix emit one item for the index of each segment_model. e.g. if we have 2 segment_models and are give prefixes [[0],] then the result is [[0,0],,[1,0],]. used in the calculation of the cross-join of segment indexes across all dimensions

# File lib/mdquery/model.rb, line 135
def index_list(prefixes=nil)
  (0...segment_models.length).reduce([]){|l, i| l + (prefixes||[[]]).map{|prefix| prefix.clone << i}}
end
inspect() click to toggle source
# File lib/mdquery/model.rb, line 127
def inspect
  "#<DimensionDefinition: key=#{key.inspect}, segment_models=#{segment_models.inspect}>"
end
validate() click to toggle source
# File lib/mdquery/model.rb, line 122
def validate
  raise "no key!" if !key
  raise "no segment_models!" if !segment_models || segment_models.empty?
end