Class: MDQuery::Dataset::Dataset
- Inherits:
-
Object
- Object
- MDQuery::Dataset::Dataset
- Defined in:
- lib/mdquery/dataset.rb
Overview
a Dataset is defined over a number of Dimensions with a number of Measures.
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
a list of points.
-
#dimensions ⇒ Object
readonly
a Hash of
Dimensions
keyed by theirkeys
. -
#indexed_data ⇒ Object
readonly
index of points from
data
, where key is a Hash of all Dimension key=>value pairs, and value is all Measure key=>value pairs. -
#measures ⇒ Object
readonly
a Hash of
Measures
keyed by theirkeys
. -
#model ⇒ Object
readonly
the
Model
describing how theDataset
is to be assembled.
Instance Method Summary collapse
-
#datapoint(dimension_values, measure) ⇒ Object
retrieve a datapoint given a hash of dimension_key=>dimension_values.
-
#initialize(model, data) ⇒ Dataset
constructor
A new instance of Dataset.
- #inspect ⇒ Object
- #validate ⇒ Object
Constructor Details
#initialize(model, data) ⇒ Dataset
Returns a new instance of Dataset.
233 234 235 236 237 238 239 240 241 242 |
# File 'lib/mdquery/dataset.rb', line 233 def initialize(model, data) @model = model @data = data @measures = model.measure_models.map{|mm| Measure.new(mm, self) }.reduce({}){|mi,m| mi[m.key] = m ; mi} @dimensions = model.dimension_models.map{|dm| Dimension.new(dm, self) }.reduce({}){|di,d| di[d.key] = d ; di} validate index end |
Instance Attribute Details
#data ⇒ Object (readonly)
a list of points. each point is a Hash with a value for each Dimension
and a value for each Measure
. keys are as given in the Dimension
and Measure
objects
222 223 224 |
# File 'lib/mdquery/dataset.rb', line 222 def data @data end |
#dimensions ⇒ Object (readonly)
a Hash of Dimensions
keyed by their keys
225 226 227 |
# File 'lib/mdquery/dataset.rb', line 225 def dimensions @dimensions end |
#indexed_data ⇒ Object (readonly)
index of points from data
, where key is a Hash of all Dimension key=>value pairs, and value is all Measure key=>value pairs
231 232 233 |
# File 'lib/mdquery/dataset.rb', line 231 def indexed_data @indexed_data end |
#measures ⇒ Object (readonly)
a Hash of Measures
keyed by their keys
228 229 230 |
# File 'lib/mdquery/dataset.rb', line 228 def measures @measures end |
#model ⇒ Object (readonly)
the Model
describing how the Dataset
is to be assembled
218 219 220 |
# File 'lib/mdquery/dataset.rb', line 218 def model @model end |
Instance Method Details
#datapoint(dimension_values, measure) ⇒ Object
retrieve a datapoint given a hash of dimension_key=>dimension_values
256 257 258 259 |
# File 'lib/mdquery/dataset.rb', line 256 def datapoint(dimension_values, measure) d = @indexed_data[dimension_values] d[measure] if d end |
#inspect ⇒ Object
251 252 253 |
# File 'lib/mdquery/dataset.rb', line 251 def inspect "#<Dataset: dimensions=#{dimensions.inspect}, measures=#{measures.inspect}, data=#{data.inspect}>" end |
#validate ⇒ Object
244 245 246 247 248 249 |
# File 'lib/mdquery/dataset.rb', line 244 def validate raise "no model!" if !model raise "no data!" if !data raise "no dimensions!" if !dimensions || dimensions.empty? raise "no measures!" if !measures || measures.empty? end |