Module: OlapReport::Cube::ClassMethods
- Includes:
- ActiveRecord::Helpers
- Defined in:
- lib/olap_report/cube.rb
Instance Attribute Summary collapse
-
#dimensions ⇒ Object
readonly
Returns the value of attribute dimensions.
-
#measures ⇒ Object
readonly
Returns the value of attribute measures.
Class Method Summary collapse
Instance Method Summary collapse
- #adapter ⇒ Object
-
#define_dimension(name, &block) ⇒ Object
Define dimension for ActiveRecord model.
-
#define_measure(name, function = :sum, options = {}) ⇒ Object
Define measure for ActiveRecord model.
-
#dimension(name) ⇒ OlapReport::Cube::Dimension
Get dimension by name.
-
#measure(name) ⇒ OlapReport::Cube::Measure
Get dimension by name.
- #measures_scope ⇒ Object
Methods included from ActiveRecord::Helpers
#association_class, #column_with_alias, #join_table_name, #quote_table_column
Instance Attribute Details
#dimensions ⇒ Object (readonly)
Returns the value of attribute dimensions.
16 17 18 |
# File 'lib/olap_report/cube.rb', line 16 def dimensions @dimensions end |
#measures ⇒ Object (readonly)
Returns the value of attribute measures.
16 17 18 |
# File 'lib/olap_report/cube.rb', line 16 def measures @measures end |
Class Method Details
.extended(base) ⇒ Object
18 19 20 21 |
# File 'lib/olap_report/cube.rb', line 18 def self.extended(base) base.instance_variable_set(:@dimensions, []) base.instance_variable_set(:@measures, []) end |
Instance Method Details
#adapter ⇒ Object
23 24 25 26 27 28 |
# File 'lib/olap_report/cube.rb', line 23 def adapter @adapter ||= begin klass = ['OlapReport::Cube::Adapters', connection.adapter_name + 'Adapter'].join('::').constantize klass.new(self) end end |
#define_dimension(name, &block) ⇒ Object
Define dimension for ActiveRecord model
36 37 38 39 40 |
# File 'lib/olap_report/cube.rb', line 36 def define_dimension(name, &block) dimension = OlapReport::Cube::Dimension.new(self, name) @dimensions << dimension dimension.instance_exec &block end |
#define_measure(name, function = :sum, options = {}) ⇒ Object
Define measure for ActiveRecord model
46 47 48 |
# File 'lib/olap_report/cube.rb', line 46 def define_measure(name, function = :sum, = {}) @measures << OlapReport::Cube::Measure.new(self, name, function, ) end |
#dimension(name) ⇒ OlapReport::Cube::Dimension
Get dimension by name
53 54 55 |
# File 'lib/olap_report/cube.rb', line 53 def dimension(name) dimensions.find{|d| d.name == name} || raise(KeyError, "Dimension #{name} not found") end |
#measure(name) ⇒ OlapReport::Cube::Measure
Get dimension by name
60 61 62 |
# File 'lib/olap_report/cube.rb', line 60 def measure(name) measures.find{|m| m.name == name} end |
#measures_scope ⇒ Object
30 31 32 |
# File 'lib/olap_report/cube.rb', line 30 def measures_scope @measures_scope ||= OlapReport::Cube::Measure::Scope.new end |