Class: JsonapiCompliable::Stats::Payload

Inherits:
Object
  • Object
show all
Defined in:
lib/jsonapi_compliable/stats/payload.rb

Instance Method Summary collapse

Constructor Details

#initialize(controller, scope) ⇒ Payload



4
5
6
7
8
# File 'lib/jsonapi_compliable/stats/payload.rb', line 4

def initialize(controller, scope)
  @dsl       = controller._jsonapi_compliable
  @directive = controller.params[:stats]
  @scope     = controller._jsonapi_scope || scope
end

Instance Method Details

#generate ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/jsonapi_compliable/stats/payload.rb', line 10

def generate
  {}.tap do |stats|
    @directive.each_pair do |name, calculation|
      stats[name] = {}

      each_calculation(name, parse_calculation(calculation)) do |calc, function|
        stats[name][calc] = function.call(@scope, name)
      end
    end
  end
end