class ReportsKit::Reports::Data::PopulateOneDimension

Attributes

context_record[RW]
properties[RW]
sparse_serieses_dimension_keys_values[RW]

Public Class Methods

new(sparse_serieses_dimension_keys_values, context_record: nil, properties: nil) click to toggle source
# File lib/reports_kit/reports/data/populate_one_dimension.rb, line 7
def initialize(sparse_serieses_dimension_keys_values, context_record: nil, properties: nil)
  self.sparse_serieses_dimension_keys_values = sparse_serieses_dimension_keys_values
  self.context_record = context_record
  self.properties = properties
end

Public Instance Methods

perform() click to toggle source
# File lib/reports_kit/reports/data/populate_one_dimension.rb, line 13
def perform
  return sparse_serieses_dimension_keys_values if sparse_serieses_dimension_keys_values.length == 1
  serieses_dimension_keys_values
end

Private Instance Methods

dimension_keys() click to toggle source
# File lib/reports_kit/reports/data/populate_one_dimension.rb, line 30
def dimension_keys
  dimension_keys_from_edit_dimension_keys_method || dimension_keys_from_results
end
dimension_keys_from_edit_dimension_keys_method() click to toggle source
# File lib/reports_kit/reports/data/populate_one_dimension.rb, line 34
def dimension_keys_from_edit_dimension_keys_method
  return unless edit_dimension_keys_method
  edit_dimension_keys_method.call(dimension_keys: dimension_keys_from_results, properties: properties, context_record: context_record)
end
dimension_keys_from_results() click to toggle source
# File lib/reports_kit/reports/data/populate_one_dimension.rb, line 39
def dimension_keys_from_results
  @dimension_keys_from_results ||= begin
    sparse_serieses_dimension_keys_values.map do |series, dimension_keys_values|
      dimension_keys_values.keys
    end.reduce(&:+).uniq
  end
end
edit_dimension_keys_method() click to toggle source
# File lib/reports_kit/reports/data/populate_one_dimension.rb, line 47
def edit_dimension_keys_method
  return unless properties
  ReportsKit.configuration.custom_method(properties[:report_options].try(:[], :edit_dimension_keys_method))
end
serieses_dimension_keys_values() click to toggle source
# File lib/reports_kit/reports/data/populate_one_dimension.rb, line 20
def serieses_dimension_keys_values
  serieses_dimension_keys_values = sparse_serieses_dimension_keys_values.map do |series, dimension_keys_values|
    dimension_keys.each do |key|
      dimension_keys_values[key] ||= 0
    end
    [series, dimension_keys_values]
  end
  Hash[serieses_dimension_keys_values]
end