]> source.dussan.org Git - redmine.git/commitdiff
Use #reduce instead of #inject for getting the intersection of arrays.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 9 Feb 2012 20:06:36 +0000 (20:06 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 9 Feb 2012 20:06:36 +0000 (20:06 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8827 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/context_menus_controller.rb
app/controllers/issues_controller.rb
app/models/custom_field.rb

index fa7caf4e03e7e5dbac87f58523a340a22fc23c6a..dbfa4057e2e8aa94dc6f0a27bdb996506c80d1b9 100644 (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|
index df130f9d5899af1c943ddeb7c12583ba18dd9738..4e3fe8aefe597010eeeecff254cdace954fc6582 100644 (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
 
index 8011320b3202ed34b24844a93b8ec5548988b5b1..02736aea29f132f07d1692a4f1b2234039793ae2 100644 (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