Class: ActiveReporting::Metric

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, fact_model:, aggregate: :count, dimensions: [], dimension_filter: {}, metric_filter: {}, order_by_dimension: {}) ⇒ Metric

Returns a new instance of Metric.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/active_reporting/metric.rb', line 10

def initialize(
  name,
  fact_model:,
  aggregate: :count,
  dimensions: [],
  dimension_filter: {},
  metric_filter: {},
  order_by_dimension: {}
)
  @name               = name.to_sym
  @fact_model         = fact_model
  @dimension_filter   = dimension_filter
  @aggregate          = determin_aggregate(aggregate.to_sym)
  @metric_filter      = metric_filter
  @dimensions         = ReportingDimension.build_from_dimensions(@fact_model, Array(dimensions))
  @order_by_dimension = order_by_dimension
  check_dimension_filter
end

Instance Attribute Details

#aggregateObject (readonly)

Returns the value of attribute aggregate.



8
9
10
# File 'lib/active_reporting/metric.rb', line 8

def aggregate
  @aggregate
end

#dimension_filterObject (readonly)

Returns the value of attribute dimension_filter.



8
9
10
# File 'lib/active_reporting/metric.rb', line 8

def dimension_filter
  @dimension_filter
end

#dimensionsObject (readonly)

Returns the value of attribute dimensions.



8
9
10
# File 'lib/active_reporting/metric.rb', line 8

def dimensions
  @dimensions
end

#fact_modelObject (readonly)

Returns the value of attribute fact_model.



8
9
10
# File 'lib/active_reporting/metric.rb', line 8

def fact_model
  @fact_model
end

#metric_filterObject (readonly)

Returns the value of attribute metric_filter.



8
9
10
# File 'lib/active_reporting/metric.rb', line 8

def metric_filter
  @metric_filter
end

#nameObject (readonly)

Returns the value of attribute name.



8
9
10
# File 'lib/active_reporting/metric.rb', line 8

def name
  @name
end

#order_by_dimensionObject (readonly)

Returns the value of attribute order_by_dimension.



8
9
10
# File 'lib/active_reporting/metric.rb', line 8

def order_by_dimension
  @order_by_dimension
end

Instance Method Details

#reportActiveReporting::Report

Builds an ActiveReporting::Report object based on the metric



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

def report
  Report.new(self)
end