Share method to generate stats

This commit is contained in:
Javi Martín
2018-12-10 14:43:29 +01:00
parent 62a97f9003
commit 313ffb589b
3 changed files with 17 additions and 15 deletions

View File

@@ -2,13 +2,12 @@ class Budget::Stats
include Statisticable include Statisticable
alias_method :budget, :resource alias_method :budget, :resource
def generate def stats_methods
stats = %w[total_participants total_participants_support_phase total_participants_vote_phase %w[total_participants total_participants_support_phase total_participants_vote_phase
total_budget_investments total_votes total_selected_investments total_budget_investments total_votes total_selected_investments
total_unfeasible_investments total_male_participants total_female_participants total_unfeasible_investments total_male_participants total_female_participants
total_supports total_unknown_gender_or_age age_groups male_percentage total_supports total_unknown_gender_or_age age_groups male_percentage
female_percentage headings total_participants_web total_participants_booths] female_percentage headings total_participants_web total_participants_booths]
stats.map { |stat_name| [stat_name.to_sym, send(stat_name)] }.to_h
end end
private private

View File

@@ -7,5 +7,9 @@ module Statisticable
def initialize(resource) def initialize(resource)
@resource = resource @resource = resource
end end
def generate
stats_methods.map { |stat_name| [stat_name.to_sym, send(stat_name)] }.to_h
end
end end
end end

View File

@@ -3,14 +3,13 @@ class Poll::Stats
include StatsHelper include StatsHelper
alias_method :poll, :resource alias_method :poll, :resource
def generate def stats_methods
stats = %w[total_participants total_participants_web total_web_valid total_web_white total_web_null %w[total_participants total_participants_web total_web_valid total_web_white total_web_null
total_participants_booth total_booth_valid total_booth_white total_booth_null total_participants_booth total_booth_valid total_booth_white total_booth_null
total_valid_votes total_white_votes total_null_votes valid_percentage_web valid_percentage_booth total_valid_votes total_white_votes total_null_votes valid_percentage_web valid_percentage_booth
total_valid_percentage white_percentage_web white_percentage_booth total_white_percentage total_valid_percentage white_percentage_web white_percentage_booth total_white_percentage
null_percentage_web null_percentage_booth total_null_percentage total_participants_web_percentage null_percentage_web null_percentage_booth total_null_percentage total_participants_web_percentage
total_participants_booth_percentage] total_participants_booth_percentage]
stats.map { |stat_name| [stat_name.to_sym, send(stat_name)] }.to_h
end end
private private