git-svn-id: https://svn.redmine.org/redmine/trunk@22055 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/5.1.0
@@ -63,7 +63,7 @@ database_file = File.join(File.dirname(__FILE__), "config/database.yml") | |||
if File.exist?(database_file) | |||
yaml_config = ERB.new(IO.read(database_file)).result | |||
database_config = YAML.respond_to?(:unsafe_load) ? YAML.unsafe_load(yaml_config) : YAML.load(yaml_config) | |||
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq | |||
adapters = database_config.values.filter_map {|c| c['adapter']}.uniq | |||
if adapters.any? | |||
adapters.each do |adapter| | |||
case adapter |
@@ -405,7 +405,7 @@ class ApplicationController < ActionController::Base | |||
raise ActiveRecord::RecordNotFound if @issues.empty? | |||
raise Unauthorized unless @issues.all?(&:visible?) | |||
@projects = @issues.collect(&:project).compact.uniq | |||
@projects = @issues.filter_map(&:project).uniq | |||
@project = @projects.first if @projects.size == 1 | |||
rescue ActiveRecord::RecordNotFound | |||
render_404 |
@@ -74,7 +74,7 @@ class ContextMenusController < ApplicationController | |||
@time_entry = @time_entries.first | |||
end | |||
@projects = @time_entries.collect(&:project).compact.uniq | |||
@projects = @time_entries.filter_map(&:project).uniq | |||
@project = @projects.first if @projects.size == 1 | |||
@activities = @projects.map(&:activities).reduce(:&) | |||
@@ -280,7 +280,7 @@ class TimelogController < ApplicationController | |||
raise ActiveRecord::RecordNotFound if @time_entries.empty? | |||
raise Unauthorized unless @time_entries.all? {|t| t.editable_by?(User.current)} | |||
@projects = @time_entries.collect(&:project).compact.uniq | |||
@projects = @time_entries.filter_map(&:project).uniq | |||
@project = @projects.first if @projects.size == 1 | |||
rescue ActiveRecord::RecordNotFound | |||
render_404 |
@@ -1503,7 +1503,7 @@ module ApplicationHelper | |||
# Render the error messages for the given objects | |||
def error_messages_for(*objects) | |||
objects = objects.map {|o| o.is_a?(String) ? instance_variable_get("@#{o}") : o}.compact | |||
objects = objects.filter_map {|o| o.is_a?(String) ? instance_variable_get("@#{o}") : o} | |||
errors = objects.map {|o| o.errors.full_messages}.flatten | |||
render_error_messages(errors) | |||
end |
@@ -33,7 +33,7 @@ module IssueRelationsHelper | |||
end | |||
messages.map do |message, items| | |||
ids = items.map(&:issue_to_id).compact | |||
ids = items.filter_map(&:issue_to_id) | |||
if ids.empty? | |||
message | |||
else |
@@ -50,13 +50,13 @@ module MembersHelper | |||
# Returns inheritance information for an inherited member role | |||
def render_role_inheritance(member, role) | |||
content = member.role_inheritance(role).map do |h| | |||
content = member.role_inheritance(role).filter_map do |h| | |||
if h.is_a?(Project) | |||
l(:label_inherited_from_parent_project) | |||
elsif h.is_a?(Group) | |||
l(:label_inherited_from_group, :name => h.name.to_s) | |||
end | |||
end.compact.uniq | |||
end.uniq | |||
if content.present? | |||
content_tag('em', content.join(", "), :class => "info") |
@@ -233,7 +233,7 @@ module QueriesHelper | |||
value = column.value_object(item) | |||
content = | |||
if value.is_a?(Array) | |||
values = value.collect {|v| column_value(column, item, v)}.compact | |||
values = value.filter_map {|v| column_value(column, item, v)} | |||
safe_join(values, ', ') | |||
else | |||
column_value(column, item, value) | |||
@@ -286,7 +286,7 @@ module QueriesHelper | |||
def csv_content(column, item) | |||
value = column.value_object(item) | |||
if value.is_a?(Array) | |||
value.collect {|v| csv_value(column, item, v)}.compact.join(', ') | |||
value.filter_map {|v| csv_value(column, item, v)}.join(', ') | |||
else | |||
csv_value(column, item, value) | |||
end |
@@ -52,7 +52,7 @@ module RepositoriesHelper | |||
end | |||
def render_changeset_changes | |||
changes = @changeset.filechanges.limit(1000).reorder('path').collect do |change| | |||
changes = @changeset.filechanges.limit(1000).reorder('path').filter_map do |change| | |||
case change.action | |||
when 'A' | |||
# Detects moved/copied files | |||
@@ -66,7 +66,7 @@ module RepositoriesHelper | |||
else | |||
change | |||
end | |||
end.compact | |||
end | |||
tree = {} | |||
changes.each do |change| |
@@ -120,8 +120,7 @@ class Member < ActiveRecord::Base | |||
def role_inheritance(role) | |||
member_roles. | |||
select {|mr| mr.role_id == role.id && mr.inherited_from.present?}. | |||
map {|mr| mr.inherited_from_member_role.try(:member)}. | |||
compact. | |||
filter_map {|mr| mr.inherited_from_member_role.try(:member)}. | |||
map {|m| m.project == project ? m.principal : m.project} | |||
end | |||
@@ -787,9 +787,9 @@ class Query < ActiveRecord::Base | |||
return [] if available_columns.empty? | |||
# preserve the column_names order | |||
cols = (has_default_columns? ? default_columns_names : column_names).collect do |name| | |||
cols = (has_default_columns? ? default_columns_names : column_names).filter_map do |name| | |||
available_columns.find {|col| col.name == name} | |||
end.compact | |||
end | |||
available_columns.select(&:frozen?) | cols | |||
end | |||
@@ -436,7 +436,7 @@ class Repository < ActiveRecord::Base | |||
# commits.to_a.sort! {|x, y| x.last <=> y.last} | |||
changes = Change.joins(:changeset).where("#{Changeset.table_name}.repository_id = ?", id). | |||
select("committer, user_id, count(*) as count").group("committer, user_id") | |||
user_ids = changesets.map(&:user_id).compact.uniq | |||
user_ids = changesets.filter_map(&:user_id).uniq | |||
authors_names = User.where(:id => user_ids).inject({}) do |memo, user| | |||
memo[user.id] = user.to_s | |||
memo |
@@ -213,7 +213,7 @@ class Repository::Git < Repository | |||
private :save_revisions | |||
def save_revision(rev) | |||
parents = (rev.parents || []).collect{|rp| find_changeset_by_name(rp)}.compact | |||
parents = (rev.parents || []).filter_map{|rp| find_changeset_by_name(rp)} | |||
changeset = | |||
Changeset.create( | |||
:repository => self, |
@@ -193,9 +193,9 @@ class Repository::Mercurial < Repository | |||
(db_rev + 1).step(scm_rev, FETCH_AT_ONCE) do |i| | |||
scm.each_revision('', i, [i + FETCH_AT_ONCE - 1, scm_rev].min) do |re| | |||
transaction do | |||
parents = (re.parents || []).collect do |rp| | |||
parents = (re.parents || []).filter_map do |rp| | |||
find_changeset_by_name(scmid_for_inserting_db(rp)) | |||
end.compact | |||
end | |||
cs = Changeset.create(:repository => self, | |||
:revision => re.revision, | |||
:scmid => scmid_for_inserting_db(re.scmid), |
@@ -42,7 +42,7 @@ class Repository::Subversion < Repository | |||
def latest_changesets(path, rev, limit=10) | |||
revisions = scm.revisions(path, rev, nil, :limit => limit) | |||
if revisions | |||
identifiers = revisions.collect(&:identifier).compact | |||
identifiers = revisions.filter_map(&:identifier) | |||
changesets.where(:revision => identifiers).reorder("committed_on DESC").includes(:repository, :user).to_a | |||
else | |||
[] | |||
@@ -97,7 +97,7 @@ class Repository::Subversion < Repository | |||
entries_with_identifier = | |||
entries.select {|entry| entry.lastrev && entry.lastrev.identifier.present?} | |||
identifiers = entries_with_identifier.map {|entry| entry.lastrev.identifier}.compact.uniq | |||
identifiers = entries_with_identifier.filter_map {|entry| entry.lastrev.identifier}.uniq | |||
if identifiers.any? | |||
changesets_by_identifier = | |||
changesets.where(:revision => identifiers). |
@@ -122,7 +122,7 @@ class Role < ActiveRecord::Base | |||
end | |||
def permissions=(perms) | |||
perms = perms.collect {|p| p.to_sym unless p.blank?}.compact.uniq if perms | |||
perms = perms.filter_map {|p| p.to_sym unless p.blank?}.uniq if perms | |||
write_attribute(:permissions, perms) | |||
end | |||
@@ -868,7 +868,7 @@ module Redmine | |||
def possible_values_records(custom_field, object=nil) | |||
if object.is_a?(Array) | |||
projects = object.map {|o| o.respond_to?(:project) ? o.project : nil}.compact.uniq | |||
projects = object.filter_map {|o| o.respond_to?(:project) ? o.project : nil}.uniq | |||
projects.map {|project| possible_values_records(custom_field, project)}.reduce(:&) || [] | |||
elsif object.respond_to?(:project) && object.project | |||
scope = object.project.users | |||
@@ -934,7 +934,7 @@ module Redmine | |||
def possible_values_records(custom_field, object=nil, all_statuses=false) | |||
if object.is_a?(Array) | |||
projects = object.map {|o| o.respond_to?(:project) ? o.project : nil}.compact.uniq | |||
projects = object.filter_map {|o| o.respond_to?(:project) ? o.project : nil}.uniq | |||
projects.map {|project| possible_values_records(custom_field, project)}.reduce(:&) || [] | |||
elsif object.respond_to?(:project) && object.project | |||
scope = object.project.shared_versions |
@@ -198,7 +198,7 @@ module Redmine | |||
# Returns the distinct versions of the issues that belong to +project+ | |||
def project_versions(project) | |||
project_issues(project).collect(&:fixed_version).compact.uniq | |||
project_issues(project).filter_map(&:fixed_version).uniq | |||
end | |||
# Returns the issues that belong to +project+ and are assigned to +version+ |
@@ -49,7 +49,7 @@ module Redmine | |||
@scope.includes(:activity). | |||
reorder(nil). | |||
group(@criteria.collect{|criteria| @available_criteria[criteria][:sql]} + time_columns). | |||
joins(@criteria.collect{|criteria| @available_criteria[criteria][:joins]}.compact). | |||
joins(@criteria.filter_map{|criteria| @available_criteria[criteria][:joins]}). | |||
sum(:hours).each do |hash, hours| | |||
h = {'hours' => hours} | |||
(@criteria + time_columns).each_with_index do |name, i| |
@@ -48,11 +48,11 @@ module Redmine | |||
def self.block_options(blocks_in_use=[]) | |||
options = [] | |||
blocks.each do |block, block_options| | |||
indexes = blocks_in_use.map do |n| | |||
indexes = blocks_in_use.filter_map do |n| | |||
if n =~ /\A#{block}(__(\d+))?\z/ | |||
$2.to_i | |||
end | |||
end.compact | |||
end | |||
occurs = indexes.size | |||
block_id = indexes.any? ? "#{block}__#{indexes.max + 1}" : block |
@@ -329,7 +329,7 @@ module Redmine | |||
end | |||
def revisions | |||
revisions ||= Revisions.new(collect{|entry| entry.lastrev}.compact) | |||
revisions ||= Revisions.new(filter_map{|entry| entry.lastrev}) | |||
end | |||
end | |||
@@ -82,9 +82,9 @@ module Redmine | |||
klass = scope.singularize.camelcase.constantize | |||
results_by_scope[scope] += klass.search_results_from_ids(scope_and_ids.map(&:last)) | |||
end | |||
result_ids_to_load.map do |scope, id| | |||
result_ids_to_load.filter_map do |scope, id| | |||
results_by_scope[scope].detect {|record| record.id == id} | |||
end.compact | |||
end | |||
end | |||
# Returns the results ids, sorted by rank |
@@ -1259,7 +1259,7 @@ class IssuesControllerTest < Redmine::ControllerTest | |||
get(:index, :params => {:sort => 'assigned_to'}) | |||
assert_response :success | |||
assignees = issues_in_list.map(&:assigned_to).compact | |||
assignees = issues_in_list.filter_map(&:assigned_to) | |||
assert_equal assignees.sort, assignees | |||
assert_select 'table.issues.sort-by-assigned-to.sort-asc' | |||
end | |||
@@ -1268,7 +1268,7 @@ class IssuesControllerTest < Redmine::ControllerTest | |||
get(:index, :params => {:sort => 'assigned_to:desc'}) | |||
assert_response :success | |||
assignees = issues_in_list.map(&:assigned_to).compact | |||
assignees = issues_in_list.filter_map(&:assigned_to) | |||
assert_equal assignees.sort.reverse, assignees | |||
assert_select 'table.issues.sort-by-assigned-to.sort-desc' | |||
end |
@@ -1940,13 +1940,13 @@ class QueryTest < ActiveSupport::TestCase | |||
q.sort_criteria = [[c.name.to_s, 'asc']] | |||
issues = q.issues | |||
values = | |||
issues.collect do |i| | |||
issues.filter_map do |i| | |||
begin | |||
Kernel.Float(i.custom_value_for(c.custom_field).to_s) | |||
rescue | |||
nil | |||
end | |||
end.compact | |||
end | |||
assert !values.empty? | |||
assert_equal values.sort, values | |||
end |