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:
parent
8b3ed4175d
commit
8c38510ee5
@ -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|
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user