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