Class: ActiveReporting::Report

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/active_reporting/report.rb

Constant Summary collapse

AGGREGATE_FUNCTION_OPERATORS =
{
  eq:   '=',
  gt:   '>',
  gte:  '>=',
  lt:   '<',
  lte:  '<='
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(metric, dimension_identifiers: true, dimension_filter: {}, dimensions: [], metric_filter: {}) ⇒ Report

Returns a new instance of Report.

Raises:



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/active_reporting/report.rb', line 17

def initialize(metric, dimension_identifiers: true, dimension_filter: {}, dimensions: [], metric_filter: {})
  @metric = metric.is_a?(Metric) ? metric : ActiveReporting.fetch_metric(metric)
  raise UnknownMetric, "Unknown metric #{metric}" if @metric.nil?

  @dimension_identifiers  = dimension_identifiers
  local_dimensions        = ReportingDimension.build_from_dimensions(fact_model, Array(dimensions))
  @dimensions             = (@metric.dimensions + local_dimensions).uniq
  @metric_filter          = @metric.metric_filter.merge(metric_filter)
  @ordering               = @metric.order_by_dimension
  partition_dimension_filters dimension_filter
end

Instance Method Details

#runArray

Builds and executes a query, returning the raw result

Returns:

  • (Array)


32
33
34
# File 'lib/active_reporting/report.rb', line 32

def run
  @run ||= build_data
end