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: {}, measure: nil) ⇒ Metric

Returns a new instance of Metric.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/active_reporting/metric.rb', line 13

def initialize(
  name,
  fact_model:,
  aggregate: :count,
  dimensions: [],
  dimension_filter: {},
  metric_filter: {},
  order_by_dimension: {},
  measure: nil
)
  @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
  @measure            = measure
  check_dimension_filter
end

Instance Attribute Details

#aggregateObject (readonly)

Returns the value of attribute aggregate.



10
11
12
# File 'lib/active_reporting/metric.rb', line 10

def aggregate
  @aggregate
end

#dimension_filterObject (readonly)

Returns the value of attribute dimension_filter.



10
11
12
# File 'lib/active_reporting/metric.rb', line 10

def dimension_filter
  @dimension_filter
end

#dimensionsObject (readonly)

Returns the value of attribute dimensions.



10
11
12
# File 'lib/active_reporting/metric.rb', line 10

def dimensions
  @dimensions
end

#fact_modelObject (readonly)

Returns the value of attribute fact_model.



10
11
12
# File 'lib/active_reporting/metric.rb', line 10

def fact_model
  @fact_model
end

#measureObject (readonly)

Returns the value of attribute measure.



11
12
13
# File 'lib/active_reporting/metric.rb', line 11

def measure
  @measure
end

#metric_filterObject (readonly)

Returns the value of attribute metric_filter.



11
12
13
# File 'lib/active_reporting/metric.rb', line 11

def metric_filter
  @metric_filter
end

#nameObject (readonly)

Returns the value of attribute name.



10
11
12
# File 'lib/active_reporting/metric.rb', line 10

def name
  @name
end

#order_by_dimensionObject (readonly)

Returns the value of attribute order_by_dimension.



11
12
13
# File 'lib/active_reporting/metric.rb', line 11

def order_by_dimension
  @order_by_dimension
end

Instance Method Details

#reportActiveReporting::Report

Builds an ActiveReporting::Report object based on the metric



37
38
39
# File 'lib/active_reporting/metric.rb', line 37

def report
  Report.new(self)
end