class MDQuery::Dataset::DimensionSegment
describes a segment of a dimension, a segment being some part of the dimension value line. Dimension
values should not be present in more than one segment of a dimension, or results will be unexpected, though it's fine for aggregate values to be present which cover the same range as other values. e.g. having values of “jan”, “feb”, “march”… in one segment and “q1”,“q2”,“q3”,“q4” in another segment is fine
Attributes
dimension[R]
Dimension
this Segment belongs to
dimension_values[R]
ordered list of DimensionValues in segment
key[R]
key of segment, unique within Dimension
values[R]
ordered list of all values in segment
Public Class Methods
new(model, dimension)
click to toggle source
# File lib/mdquery/dataset.rb, line 54 def initialize(model, dimension) @dimension = dimension @key = model.key @values = model.get_values(dimension.dataset.model.source) label_index = model.labels(@values) @dimension_values = @values.map{|v| DimensionValue.new(self, v, label_index[v]) } @dimension_value_index = @dimension_values.reduce({}){|dvi,dv| dvi[dv.value] = dv ; dvi} validate end
Public Instance Methods
[](value)
click to toggle source
retrieve a DimensionValue
describing the given value
# File lib/mdquery/dataset.rb, line 83 def [](value) dimension_value_for(value) end
dimension_value_for(value)
click to toggle source
retrieve a DimensionValue
describing the given value
# File lib/mdquery/dataset.rb, line 78 def dimension_value_for(value) @dimension_value_index[value] end
inspect()
click to toggle source
# File lib/mdquery/dataset.rb, line 73 def inspect "#<DimensionSegment: key=#{key.inspect}, dimension_values=#{dimension_values.inspect}>" end
label_for(value)
click to toggle source
retrieve a label describing the given value
# File lib/mdquery/dataset.rb, line 88 def label_for(value) (dv = dimension_value_for(value)) && dv.label end
validate()
click to toggle source
# File lib/mdquery/dataset.rb, line 67 def validate raise "no dimension!" if !dimension raise "no key!" if !key raise "no values!" if !values end