From 8c38510ee5045447a0be063596c888a678521b7b Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Thu, 9 Feb 2012 20:06:36 +0000 Subject: [PATCH] Use #reduce instead of #inject for getting the intersection of arrays. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8827 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/context_menus_controller.rb | 8 ++++---- app/controllers/issues_controller.rb | 10 +++++----- app/models/custom_field.rb | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/controllers/context_menus_controller.rb b/app/controllers/context_menus_controller.rb index fa7caf4e0..dbfa4057e 100644 --- a/app/controllers/context_menus_controller.rb +++ b/app/controllers/context_menus_controller.rb @@ -8,7 +8,7 @@ class ContextMenusController < ApplicationController @issue = @issues.first end - @allowed_statuses = @issues.map(&:new_statuses_allowed_to).inject{|memo,a| memo & a} + @allowed_statuses = @issues.map(&:new_statuses_allowed_to).reduce(:&) @projects = @issues.collect(&:project).compact.uniq @project = @projects.first if @projects.size == 1 @@ -28,8 +28,8 @@ class ContextMenusController < ApplicationController @trackers = @project.trackers else #when multiple projects, we only keep the intersection of each set - @assignables = @projects.map(&:assignable_users).inject{|memo,a| memo & a} - @trackers = @projects.map(&:trackers).inject{|memo,t| memo & t} + @assignables = @projects.map(&:assignable_users).reduce(:&) + @trackers = @projects.map(&:trackers).reduce(:&) end @priorities = IssuePriority.active.reverse @@ -37,7 +37,7 @@ class ContextMenusController < ApplicationController @options_by_custom_field = {} if @can[:edit] - custom_fields = @issues.map(&:available_custom_fields).inject {|memo, f| memo & f}.select do |f| + custom_fields = @issues.map(&:available_custom_fields).reduce(:&).select do |f| %w(bool list user version).include?(f.field_format) && !f.multiple? end custom_fields.each do |field| diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index df130f9d5..4e3fe8aef 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -229,12 +229,12 @@ class IssuesController < ApplicationController end target_projects ||= @projects - @available_statuses = target_projects.map{|p|Workflow.available_statuses(p)}.inject{|memo,w|memo & w} - @custom_fields = target_projects.map{|p|p.all_issue_custom_fields}.inject{|memo,c|memo & c} - @assignables = target_projects.map(&:assignable_users).inject{|memo,a| memo & a} - @trackers = target_projects.map(&:trackers).inject{|memo,t| memo & t} + @available_statuses = target_projects.map{|p|Workflow.available_statuses(p)}.reduce(:&) + @custom_fields = target_projects.map{|p|p.all_issue_custom_fields}.reduce(:&) + @assignables = target_projects.map(&:assignable_users).reduce(:&) + @trackers = target_projects.map(&:trackers).reduce(:&) - @safe_attributes = @issues.map(&:safe_attribute_names).inject {|memo,attrs| memo & attrs} + @safe_attributes = @issues.map(&:safe_attribute_names).reduce(:&) render :layout => false if request.xhr? end diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb index 8011320b3..02736aea2 100644 --- a/app/models/custom_field.rb +++ b/app/models/custom_field.rb @@ -73,7 +73,7 @@ class CustomField < ActiveRecord::Base obj.project.shared_versions.sort.collect {|u| [u.to_s, u.id.to_s]} end elsif obj.is_a?(Array) - obj.collect {|o| possible_values_options(o)}.inject {|memo, v| memo & v} + obj.collect {|o| possible_values_options(o)}.reduce(:&) else [] end -- 2.39.5