Sha256: 15709dfd788fe1ef2151749ba23cd9e745cd9021cf7ce5957f987b929416a413
Contents?: true
Size: 862 Bytes
Versions: 1
Compression:
Stored size: 862 Bytes
Contents
module JsonapiCompliable module Stats class Payload def initialize(controller, scope) @dsl = controller._jsonapi_compliable @directive = controller.params[:stats] @scope = controller._jsonapi_scope || scope end def generate {}.tap do |stats| @directive.each_pair do |name, calculation| stats[name] = {} each_calculation(name, calculation) do |calc, function| stats[name][calc] = function.call(@scope, name) end end end end private def each_calculation(name, calculation_string) calculations = calculation_string.split(',').map(&:to_sym) calculations.each do |calc| function = @dsl.stat(name, calc) yield calc, function end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jsonapi_compliable-0.3.9 | lib/jsonapi_compliable/stats/payload.rb |