From eafb4018bf71b604e22c3b09da08ee4b69e763d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sat, 26 Oct 2019 00:44:19 +0200 Subject: [PATCH] Apply Style/CollectionMethods rubocop rule We were already using `map` and `reduce` almost everywhere. --- .rubocop.yml | 3 +++ app/controllers/admin/stats_controller.rb | 4 ++-- .../concerns/dashboard/group_supports.rb | 2 +- .../concerns/remotely_translatable.rb | 2 +- .../tracking/budget_investments_controller.rb | 2 +- .../budget_investments_controller.rb | 2 +- app/helpers/admin_helper.rb | 4 +--- app/helpers/geozones_helper.rb | 2 +- app/helpers/polls_helper.rb | 2 +- app/helpers/proposals_helper.rb | 2 +- app/helpers/shifts_helper.rb | 4 ++-- app/helpers/translatable_form_helper.rb | 2 +- app/helpers/user_segments_helper.rb | 2 +- app/helpers/valuation_helper.rb | 4 ++-- app/models/budget/investment.rb | 4 ++-- app/models/budget/stats.rb | 16 ++++++------- app/models/concerns/search_cache.rb | 2 +- app/models/poll/question.rb | 2 +- app/models/signature.rb | 2 +- app/models/signature_sheet.rb | 2 +- app/models/widget/feed.rb | 2 +- bin/spring | 2 +- lib/tasks/proposal_actions.rake | 2 +- spec/features/budgets/investments_spec.rb | 24 +++++++++---------- spec/features/legislation/proposals_spec.rb | 2 +- spec/lib/graphql_spec.rb | 6 ++--- .../local_census_records/import_spec.rb | 10 ++++---- 27 files changed, 57 insertions(+), 56 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 881bd428e..702bbb64f 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -379,6 +379,9 @@ Style/ClassCheck: Style/ClassVars: Enabled: true +Style/CollectionMethods: + Enabled: true + Style/Not: Enabled: true diff --git a/app/controllers/admin/stats_controller.rb b/app/controllers/admin/stats_controller.rb index 94fa1da7f..b7c6c6cad 100644 --- a/app/controllers/admin/stats_controller.rb +++ b/app/controllers/admin/stats_controller.rb @@ -80,9 +80,9 @@ class Admin::StatsController < Admin::BaseController @vote_count = @budget.lines.count - @vote_count_by_heading = @budget.lines.group(:heading_id).count.collect { |k, v| [Budget::Heading.find(k).name, v] }.sort + @vote_count_by_heading = @budget.lines.group(:heading_id).count.map { |k, v| [Budget::Heading.find(k).name, v] }.sort - @user_count_by_district = User.where.not(balloted_heading_id: nil).group(:balloted_heading_id).count.collect { |k, v| [Budget::Heading.find(k).name, v] }.sort + @user_count_by_district = User.where.not(balloted_heading_id: nil).group(:balloted_heading_id).count.map { |k, v| [Budget::Heading.find(k).name, v] }.sort end def polls diff --git a/app/controllers/concerns/dashboard/group_supports.rb b/app/controllers/concerns/dashboard/group_supports.rb index abe833729..f9dfe0fbc 100644 --- a/app/controllers/concerns/dashboard/group_supports.rb +++ b/app/controllers/concerns/dashboard/group_supports.rb @@ -15,7 +15,7 @@ module Dashboard::GroupSupports def accumulate_supports(grouped_votes) grouped_votes.each do |group, votes| - grouped_votes[group] = votes.inject(0) { |sum, vote| sum + vote.vote_weight } + grouped_votes[group] = votes.reduce(0) { |sum, vote| sum + vote.vote_weight } end accumulated = 0 diff --git a/app/controllers/concerns/remotely_translatable.rb b/app/controllers/concerns/remotely_translatable.rb index 35662b5fb..b21f6c39b 100644 --- a/app/controllers/concerns/remotely_translatable.rb +++ b/app/controllers/concerns/remotely_translatable.rb @@ -20,7 +20,7 @@ module RemotelyTranslatable end def resources_groups(*args) - feeds = args.detect { |arg| arg&.first.class == Widget::Feed } || [] + feeds = args.find { |arg| arg&.first.class == Widget::Feed } || [] args.compact - [feeds] + feeds.map(&:items) end diff --git a/app/controllers/tracking/budget_investments_controller.rb b/app/controllers/tracking/budget_investments_controller.rb index 3a9c2a34c..e5fe27f28 100644 --- a/app/controllers/tracking/budget_investments_controller.rb +++ b/app/controllers/tracking/budget_investments_controller.rb @@ -58,7 +58,7 @@ class Tracking::BudgetInvestmentsController < Tracking::BaseController } ] - investment_headings.inject(all_headings_filter) do |filters, heading| + investment_headings.reduce(all_headings_filter) do |filters, heading| filters << { name: heading.name, id: heading.id, diff --git a/app/controllers/valuation/budget_investments_controller.rb b/app/controllers/valuation/budget_investments_controller.rb index 817562163..9a05f3cc8 100644 --- a/app/controllers/valuation/budget_investments_controller.rb +++ b/app/controllers/valuation/budget_investments_controller.rb @@ -83,7 +83,7 @@ class Valuation::BudgetInvestmentsController < Valuation::BaseController } ] - investment_headings.inject(all_headings_filter) do |filters, heading| + investment_headings.reduce(all_headings_filter) do |filters, heading| filters << { name: heading.name, id: heading.id, diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index 96d1e9e48..d9ff773fc 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -83,9 +83,7 @@ module AdminHelper end def admin_select_options - Administrator.with_user - .collect { |v| [v.description_or_name, v.id] } - .sort_by { |a| a[0] } + Administrator.with_user.map { |v| [v.description_or_name, v.id] }.sort_by { |a| a[0] } end def admin_submit_action(resource) diff --git a/app/helpers/geozones_helper.rb b/app/helpers/geozones_helper.rb index cf53a086e..20831986d 100644 --- a/app/helpers/geozones_helper.rb +++ b/app/helpers/geozones_helper.rb @@ -4,6 +4,6 @@ module GeozonesHelper end def geozone_select_options - Geozone.all.order(name: :asc).collect { |g| [g.name, g.id] } + Geozone.all.order(name: :asc).map { |g| [g.name, g.id] } end end diff --git a/app/helpers/polls_helper.rb b/app/helpers/polls_helper.rb index ba158fb08..f04993d4c 100644 --- a/app/helpers/polls_helper.rb +++ b/app/helpers/polls_helper.rb @@ -1,6 +1,6 @@ module PollsHelper def poll_select_options(include_all = nil) - options = @polls.collect do |poll| + options = @polls.map do |poll| [poll.name, current_path_with_query_params(poll_id: poll.id)] end options << all_polls if include_all diff --git a/app/helpers/proposals_helper.rb b/app/helpers/proposals_helper.rb index e7f10f9db..e5dccab2e 100644 --- a/app/helpers/proposals_helper.rb +++ b/app/helpers/proposals_helper.rb @@ -28,7 +28,7 @@ module ProposalsHelper end def retire_proposals_options - Proposal::RETIRE_OPTIONS.collect { |option| [t("proposals.retire_options.#{option}"), option] } + Proposal::RETIRE_OPTIONS.map { |option| [t("proposals.retire_options.#{option}"), option] } end def empty_recommended_proposals_message_text(user) diff --git a/app/helpers/shifts_helper.rb b/app/helpers/shifts_helper.rb index 4fe10f7c8..deb4d62b6 100644 --- a/app/helpers/shifts_helper.rb +++ b/app/helpers/shifts_helper.rb @@ -8,7 +8,7 @@ module ShiftsHelper def shift_recount_scrutiny_dates(booth, polls) return [] if polls.blank? - dates = polls.map(&:ends_at).map(&:to_date).sort.inject([]) do |total, date| + dates = polls.map(&:ends_at).map(&:to_date).sort.reduce([]) do |total, date| initial_date = date < Date.current ? Date.current : date total << (initial_date..date + Poll::RECOUNT_DURATION).to_a end @@ -33,7 +33,7 @@ module ShiftsHelper end def officer_select_options(officers) - officers.collect { |officer| [officer.name, officer.id] } + officers.map { |officer| [officer.name, officer.id] } end private diff --git a/app/helpers/translatable_form_helper.rb b/app/helpers/translatable_form_helper.rb index 78ce9566d..21fe5f703 100644 --- a/app/helpers/translatable_form_helper.rb +++ b/app/helpers/translatable_form_helper.rb @@ -60,7 +60,7 @@ module TranslatableFormHelper end def existing_translation_for(locale) - @object.translations.detect { |translation| translation.locale == locale } + @object.translations.find { |translation| translation.locale == locale } end def new_translation_for(locale) diff --git a/app/helpers/user_segments_helper.rb b/app/helpers/user_segments_helper.rb index 796ff03da..72925c6b1 100644 --- a/app/helpers/user_segments_helper.rb +++ b/app/helpers/user_segments_helper.rb @@ -1,6 +1,6 @@ module UserSegmentsHelper def user_segments_options - UserSegments::SEGMENTS.collect do |user_segment_name| + UserSegments::SEGMENTS.map do |user_segment_name| [t("admin.segment_recipient.#{user_segment_name}"), user_segment_name] end end diff --git a/app/helpers/valuation_helper.rb b/app/helpers/valuation_helper.rb index 2ffe8ad94..9dab279ef 100644 --- a/app/helpers/valuation_helper.rb +++ b/app/helpers/valuation_helper.rb @@ -5,11 +5,11 @@ module ValuationHelper def valuator_select_options Valuator.order("description ASC").order("users.email ASC").includes(:user). - collect { |v| [v.description_or_email, "valuator_#{v.id}"] } + map { |v| [v.description_or_email, "valuator_#{v.id}"] } end def valuator_group_select_options - ValuatorGroup.order("name ASC").collect { |g| [g.name, "group_#{g.id}"] } + ValuatorGroup.order("name ASC").map { |g| [g.name, "group_#{g.id}"] } end def explanation_field(field) diff --git a/app/models/budget/investment.rb b/app/models/budget/investment.rb index 68010ec3d..2ee462a0f 100644 --- a/app/models/budget/investment.rb +++ b/app/models/budget/investment.rb @@ -376,11 +376,11 @@ class Budget end def assigned_valuators - self.valuators.collect(&:description_or_name).compact.join(", ").presence + self.valuators.map(&:description_or_name).compact.join(", ").presence end def assigned_valuation_groups - self.valuator_groups.collect(&:name).compact.join(", ").presence + self.valuator_groups.map(&:name).compact.join(", ").presence end def valuation_tag_list diff --git a/app/models/budget/stats.rb b/app/models/budget/stats.rb index 2ff34469e..f929246ea 100644 --- a/app/models/budget/stats.rb +++ b/app/models/budget/stats.rb @@ -54,7 +54,7 @@ class Budget::Stats end def total_votes - budget.ballots.pluck(:ballot_lines_count).inject(0) { |sum, x| sum + x } + budget.ballots.pluck(:ballot_lines_count).reduce(0) { |sum, x| sum + x } end def total_selected_investments @@ -72,18 +72,18 @@ class Budget::Stats end groups[:total] = Hash.new(0) - groups[:total][:total_investments_count] = groups.collect { |_k, v| v[:total_investments_count] }.sum - groups[:total][:total_participants_support_phase] = groups.collect { |_k, v| v[:total_participants_support_phase] }.sum - groups[:total][:total_participants_vote_phase] = groups.collect { |_k, v| v[:total_participants_vote_phase] }.sum - groups[:total][:total_participants_every_phase] = groups.collect { |_k, v| v[:total_participants_every_phase] }.sum + groups[:total][:total_investments_count] = groups.map { |_k, v| v[:total_investments_count] }.sum + groups[:total][:total_participants_support_phase] = groups.map { |_k, v| v[:total_participants_support_phase] }.sum + groups[:total][:total_participants_vote_phase] = groups.map { |_k, v| v[:total_participants_vote_phase] }.sum + groups[:total][:total_participants_every_phase] = groups.map { |_k, v| v[:total_participants_every_phase] }.sum budget.headings.each do |heading| groups[heading.id].merge!(calculate_heading_stats_with_totals(groups[heading.id], groups[:total], heading.population)) end - groups[:total][:percentage_participants_support_phase] = groups.collect { |_k, v| v[:percentage_participants_support_phase] }.sum - groups[:total][:percentage_participants_vote_phase] = groups.collect { |_k, v| v[:percentage_participants_vote_phase] }.sum - groups[:total][:percentage_participants_every_phase] = groups.collect { |_k, v| v[:percentage_participants_every_phase] }.sum + groups[:total][:percentage_participants_support_phase] = groups.map { |_k, v| v[:percentage_participants_support_phase] }.sum + groups[:total][:percentage_participants_vote_phase] = groups.map { |_k, v| v[:percentage_participants_vote_phase] }.sum + groups[:total][:percentage_participants_every_phase] = groups.map { |_k, v| v[:percentage_participants_every_phase] }.sum groups end diff --git a/app/models/concerns/search_cache.rb b/app/models/concerns/search_cache.rb index 02634e55d..3ec8bc33f 100644 --- a/app/models/concerns/search_cache.rb +++ b/app/models/concerns/search_cache.rb @@ -15,7 +15,7 @@ module SearchCache def searchable_values_sql searchable_values .select { |k, _| k.present? } - .collect { |value, weight| set_tsvector(value, weight) } + .map { |value, weight| set_tsvector(value, weight) } .join(" || ") end diff --git a/app/models/poll/question.rb b/app/models/poll/question.rb index f7314ac22..aaaaa4ecd 100644 --- a/app/models/poll/question.rb +++ b/app/models/poll/question.rb @@ -71,7 +71,7 @@ class Poll::Question < ApplicationRecord end def answers_total_votes - question_answers.visibles.inject(0) { |total, question_answer| total + question_answer.total_votes } + question_answers.visibles.reduce(0) { |total, question_answer| total + question_answer.total_votes } end def most_voted_answer_id diff --git a/app/models/signature.rb b/app/models/signature.rb index 144a21309..bec7d7f39 100644 --- a/app/models/signature.rb +++ b/app/models/signature.rb @@ -71,7 +71,7 @@ class Signature < ApplicationRecord end def in_census? - document_types.detect do |document_type| + document_types.find do |document_type| response = CensusCaller.new.call(document_type, document_number, date_of_birth, postal_code) if response.valid? @census_api_response = response diff --git a/app/models/signature_sheet.rb b/app/models/signature_sheet.rb index 26d7ec072..cf67804b2 100644 --- a/app/models/signature_sheet.rb +++ b/app/models/signature_sheet.rb @@ -35,7 +35,7 @@ class SignatureSheet < ApplicationRecord end def parsed_required_fields_to_verify_groups - required_fields_to_verify.split(/[;]/).collect { |d| d.gsub(/\s+/, "") }.map { |group| group.split(/[,]/) } + required_fields_to_verify.split(/[;]/).map { |d| d.gsub(/\s+/, "") }.map { |group| group.split(/[,]/) } end def signable_found diff --git a/app/models/widget/feed.rb b/app/models/widget/feed.rb index 8947e8843..3e52e81d6 100644 --- a/app/models/widget/feed.rb +++ b/app/models/widget/feed.rb @@ -12,7 +12,7 @@ class Widget::Feed < ApplicationRecord end def self.active - KINDS.collect do |kind| + KINDS.map do |kind| feed = find_or_create_by!(kind: kind) feed if feed.active? end.compact diff --git a/bin/spring b/bin/spring index b44ad1a7a..e46bd19bd 100755 --- a/bin/spring +++ b/bin/spring @@ -8,7 +8,7 @@ unless defined?(Spring) require "bundler" lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read) - spring = lockfile.specs.detect { |spec| spec.name == "spring" } + spring = lockfile.specs.find { |spec| spec.name == "spring" } if spring Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path gem "spring", spring.version diff --git a/lib/tasks/proposal_actions.rake b/lib/tasks/proposal_actions.rake index 93fdf8c1b..f3897c7ea 100644 --- a/lib/tasks/proposal_actions.rake +++ b/lib/tasks/proposal_actions.rake @@ -384,7 +384,7 @@ namespace :proposal_actions do 5 ] - votes_count = expected_supports.inject(0.0) { |sum, x| sum + x } + votes_count = expected_supports.reduce(0.0) { |sum, x| sum + x } goal_votes = Setting["votes_for_proposal_success"].to_f cached_votes_up = 0 diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb index 901e37383..801d4f76f 100644 --- a/spec/features/budgets/investments_spec.rb +++ b/spec/features/budgets/investments_spec.rb @@ -632,11 +632,11 @@ describe "Budget Investments" do visit budget_investments_path(budget, heading_id: heading.id) within(".submenu .is-active") { expect(page).to have_content "random" } - order = all(".budget-investment h3").collect { |i| i.text } + order = all(".budget-investment h3").map { |i| i.text } expect(order).not_to be_empty visit budget_investments_path(budget, heading_id: heading.id) - new_order = all(".budget-investment h3").collect { |i| i.text } + new_order = all(".budget-investment h3").map { |i| i.text } expect(order).to eq(new_order) end @@ -645,14 +645,14 @@ describe "Budget Investments" do (per_page + 2).times { create(:budget_investment, heading: heading) } visit budget_investments_path(budget, heading_id: heading.id) - order = all(".budget-investment h3").collect { |i| i.text } + order = all(".budget-investment h3").map { |i| i.text } expect(order).not_to be_empty click_link "highest rated" click_link "random" visit budget_investments_path(budget, heading_id: heading.id) - new_order = all(".budget-investment h3").collect { |i| i.text } + new_order = all(".budget-investment h3").map { |i| i.text } expect(order).to eq(new_order) end @@ -662,7 +662,7 @@ describe "Budget Investments" do visit budget_investments_path(budget, heading_id: heading.id) - order = all(".budget-investment h3").collect { |i| i.text } + order = all(".budget-investment h3").map { |i| i.text } expect(order).not_to be_empty click_link "Next" @@ -671,7 +671,7 @@ describe "Budget Investments" do click_link "Previous" expect(page).to have_content "You're on page 1" - new_order = all(".budget-investment h3").collect { |i| i.text } + new_order = all(".budget-investment h3").map { |i| i.text } expect(order).to eq(new_order) end @@ -680,13 +680,13 @@ describe "Budget Investments" do visit budget_investments_path(budget, heading_id: heading.id) - order = all(".budget-investment h3").collect { |i| i.text } + order = all(".budget-investment h3").map { |i| i.text } expect(order).not_to be_empty click_link Budget::Investment.first.title click_link "Go back" - new_order = all(".budget-investment h3").collect { |i| i.text } + new_order = all(".budget-investment h3").map { |i| i.text } expect(order).to eq(new_order) end @@ -812,11 +812,11 @@ describe "Budget Investments" do budget.update!(phase: "finished") visit budget_investments_path(budget, heading_id: heading.id) - order = all(".budget-investment h3").collect { |i| i.text } + order = all(".budget-investment h3").map { |i| i.text } expect(order).not_to be_empty visit budget_investments_path(budget, heading_id: heading.id) - new_order = all(".budget-investment h3").collect { |i| i.text } + new_order = all(".budget-investment h3").map { |i| i.text } expect(order).to eq(new_order) end @@ -844,7 +844,7 @@ describe "Budget Investments" do end def investments_order - all(".budget-investment h3").collect { |i| i.text } + all(".budget-investment h3").map { |i| i.text } end end @@ -1038,7 +1038,7 @@ describe "Budget Investments" do visit new_budget_investment_path(budget) - select_options = find("#budget_investment_heading_id").all("option").collect(&:text) + select_options = find("#budget_investment_heading_id").all("option").map(&:text) expect(select_options).to eq ["", "Toda la ciudad", "Health: More health professionals", diff --git a/spec/features/legislation/proposals_spec.rb b/spec/features/legislation/proposals_spec.rb index 6935b31bb..f1e27dedf 100644 --- a/spec/features/legislation/proposals_spec.rb +++ b/spec/features/legislation/proposals_spec.rb @@ -133,7 +133,7 @@ describe "Legislation Proposals" do end def legislation_proposals_order - all("[id^='legislation_proposal_']").collect { |e| e[:id] } + all("[id^='legislation_proposal_']").map { |e| e[:id] } end scenario "Create a legislation proposal with an image", :js do diff --git a/spec/lib/graphql_spec.rb b/spec/lib/graphql_spec.rb index f38970f96..ba232e74f 100644 --- a/spec/lib/graphql_spec.rb +++ b/spec/lib/graphql_spec.rb @@ -23,7 +23,7 @@ end def extract_fields(response, collection_name, field_chain) fields = field_chain.split(".") - dig(response, "data.#{collection_name}.edges").collect do |node| + dig(response, "data.#{collection_name}.edges").map do |node| begin if fields.size > 1 node["node"][fields.first][fields.second] @@ -60,8 +60,8 @@ describe "Consul Schema" do comment_2 = create(:comment, author: comments_author, commentable: proposal) response = execute("{ proposal(id: #{proposal.id}) { comments { edges { node { body } } } } }") - comments = dig(response, "data.proposal.comments.edges").collect { |edge| edge["node"] } - comment_bodies = comments.collect { |comment| comment["body"] } + comments = dig(response, "data.proposal.comments.edges").map { |edge| edge["node"] } + comment_bodies = comments.map { |comment| comment["body"] } expect(comment_bodies).to match_array([comment_1.body, comment_2.body]) end diff --git a/spec/models/local_census_records/import_spec.rb b/spec/models/local_census_records/import_spec.rb index 0ca18adce..301c6e16d 100644 --- a/spec/models/local_census_records/import_spec.rb +++ b/spec/models/local_census_records/import_spec.rb @@ -59,7 +59,7 @@ describe LocalCensusRecords::Import do import.save! valid_document_numbers = ["44556678T", "33556678T", "22556678T", "X11556678"] - expect(import.created_records.collect(&:document_number)).to eq(valid_document_numbers) + expect(import.created_records.map(&:document_number)).to eq(valid_document_numbers) end it "Add invalid local census records to invalid_records array" do @@ -74,13 +74,13 @@ describe LocalCensusRecords::Import do invalid_records_date_of_births = [Date.parse("07/08/1984"), Date.parse("07/08/1985"), nil, Date.parse("07/08/1987")] invalid_records_postal_codes = ["7008", "7009", "7010", nil] - expect(import.invalid_records.collect(&:document_type)) + expect(import.invalid_records.map(&:document_type)) .to eq(invalid_records_document_types) - expect(import.invalid_records.collect(&:document_number)) + expect(import.invalid_records.map(&:document_number)) .to eq(invalid_records_document_numbers) - expect(import.invalid_records.collect(&:date_of_birth)) + expect(import.invalid_records.map(&:date_of_birth)) .to eq(invalid_records_date_of_births) - expect(import.invalid_records.collect(&:postal_code)) + expect(import.invalid_records.map(&:postal_code)) .to eq(invalid_records_postal_codes) end end