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
This commit is contained in:
Jean-Philippe Lang 2012-02-09 20:06:36 +00:00
parent 8b3ed4175d
commit 8c38510ee5
3 changed files with 10 additions and 10 deletions

View File

@ -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|

View File

@ -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

View File

@ -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