class Growth::Operations::RetentionReport::Generate
Public Instance Methods
call(input)
click to toggle source
# File lib/growth/operations/retention_report/generate.rb, line 7 def call(input) report = [] input[:grouped_resources_count].each do |count, source_resources_ids| report.push( { total_source_resources_percentage: calculate_percentage(source_resources_ids.count, input[:resources_distinct_count]), total_source_resources: source_resources_ids.count, total_target_resources: count, total_source_resources_ids: source_resources_ids.sort } ) end Success( { report: { source_resource: input[:source_resource], target_resource: input[:target_resource], total_associated_resources: input[:resources_distinct_count], total_target_resources: input[:target_resource].count, resources_stats: report } } ) end
Private Instance Methods
calculate_percentage(number, total)
click to toggle source
# File lib/growth/operations/retention_report/generate.rb, line 35 def calculate_percentage(number, total) ((number.to_f / total.to_f) * 100).round(2) end