]> source.dussan.org Git - redmine.git/commitdiff
Replace String#sub with delete_prefix / delete_suffix (#40008).
authorGo MAEDA <maeda@farend.jp>
Mon, 8 Jan 2024 01:04:37 +0000 (01:04 +0000)
committerGo MAEDA <maeda@farend.jp>
Mon, 8 Jan 2024 01:04:37 +0000 (01:04 +0000)
Patch by Go MAEDA (@maeda).

git-svn-id: https://svn.redmine.org/redmine/trunk@22596 e93f8b46-1217-0410-a6f0-8f06a7374b81

14 files changed:
app/controllers/repositories_controller.rb
app/controllers/settings_controller.rb
app/controllers/workflows_controller.rb
app/helpers/issues_helper.rb
app/models/issue_query.rb
app/models/query.rb
app/views/trackers/_form.html.erb
app/views/trackers/fields.html.erb
config/initializers/10-patches.rb
lib/redmine/diff_table.rb
lib/redmine/my_page.rb
lib/redmine/themes.rb
test/coverage/html_formatter.rb
test/functional/custom_fields_controller_test.rb

index 07829c58d478ba5184275289181326e96f2403b1..5b18f14a66c70df0a7f8da803715b54959ecfd14 100644 (file)
@@ -230,7 +230,7 @@ class RepositoriesController < ApplicationController
   # Adds a related issue to a changeset
   # POST /projects/:project_id/repository/(:repository_id/)revisions/:rev/issues
   def add_related_issue
-    issue_id = params[:issue_id].to_s.sub(/^#/, '')
+    issue_id = params[:issue_id].to_s.delete_prefix('#')
     @issue = @changeset.find_referenced_issue_by_id(issue_id)
     if @issue && (!@issue.visible? || @changeset.issues.include?(@issue))
       @issue = nil
index 9fb08d651176854f27264927c7bd99a870eb914c..4662950c17babd578519ae621ab4e04e2d3f085b 100644 (file)
@@ -53,7 +53,7 @@ class SettingsController < ApplicationController
     @deliveries = ActionMailer::Base.perform_deliveries
 
     @guessed_host_and_path = request.host_with_port.dup
-    @guessed_host_and_path << ('/'+ Redmine::Utils.relative_url_root.gsub(%r{^\/}, '')) unless Redmine::Utils.relative_url_root.blank?
+    @guessed_host_and_path << ("/#{Redmine::Utils.relative_url_root.delete_prefix('/')}") unless Redmine::Utils.relative_url_root.blank?
 
     @commit_update_keywords = Setting.commit_update_keywords.dup
     @commit_update_keywords = [{}] unless @commit_update_keywords.is_a?(Array) && @commit_update_keywords.any?
index 3bb46ad143fd33c78016ead7e293476bb3d1788c..abad0f710791b88c855a373c8b9804adce695e19 100644 (file)
@@ -58,7 +58,9 @@ class WorkflowsController < ApplicationController
 
   def permissions
     if @roles && @trackers
-      @fields = (Tracker::CORE_FIELDS_ALL - @trackers.map(&:disabled_core_fields).reduce(:&)).map {|field| [field, l("field_"+field.sub(/_id$/, ''))]}
+      @fields = (Tracker::CORE_FIELDS_ALL - @trackers.map(&:disabled_core_fields).reduce(:&)).map do |field|
+        [field, l("field_#{field.delete_suffix('_id')}")]
+      end
       @custom_fields = @trackers.map(&:custom_fields).flatten.uniq.sort
       @permissions = WorkflowPermission.rules_by_status_id(@trackers, @roles)
       @statuses.each {|status| @permissions[status.id] ||= {}}
index 80e3de8554f7a128af9e8bca4fd16fbd6a5bc827..e2ee6d535881e76d7fb59fbdd3812b4151aac736 100644 (file)
@@ -528,8 +528,8 @@ module IssuesHelper
 
     case detail.property
     when 'attr'
-      field = detail.prop_key.to_s.gsub(/\_id$/, "")
-      label = l(("field_" + field).to_sym)
+      field = detail.prop_key.to_s.delete_suffix('_id')
+      label = l(("field_#{field}").to_sym)
       case detail.prop_key
       when 'due_date', 'start_date'
         value = format_date(detail.value.to_date) if detail.value
index 21552dfd6c73233a5a9b2cead3f922f102810ec2..7c1027ad3247a19edc57b5218c32b5d703c585ef 100644 (file)
@@ -328,7 +328,7 @@ class IssueQuery < Query
                         :sortable => "#{Issue.table_name}.is_private", :groupable => true)
     end
 
-    disabled_fields = Tracker.disabled_core_fields(trackers).map {|field| field.sub(/_id$/, '')}
+    disabled_fields = Tracker.disabled_core_fields(trackers).map {|field| field.delete_suffix('_id')}
     disabled_fields << "total_estimated_hours" if disabled_fields.include?("estimated_hours")
     @available_columns.reject! do |column|
       disabled_fields.include?(column.name.to_s)
@@ -479,7 +479,7 @@ class IssueQuery < Query
   def sql_for_notes_field(field, operator, value)
     subquery = "SELECT 1 FROM #{Journal.table_name}" +
       " WHERE #{Journal.table_name}.journalized_type='Issue' AND #{Journal.table_name}.journalized_id=#{Issue.table_name}.id" +
-      " AND (#{sql_for_field field, operator.sub(/^!/, ''), value, Journal.table_name, 'notes'})" +
+      " AND (#{sql_for_field field, operator.delete_prefix('!'), value, Journal.table_name, 'notes'})" +
       " AND (#{Journal.visible_notes_condition(User.current, :skip_pre_condition => true)})"
     "#{/^!/.match?(operator) ? "NOT EXISTS" : "EXISTS"} (#{subquery})"
   end
index b9a7181fa372c4ef2d3e838af65f3f1a5b021182..1826bd509312da45d3b22ce8c2a8cea575920c9b 100644 (file)
@@ -211,7 +211,7 @@ class QueryFilter
   def initialize(field, options)
     @field = field.to_s
     @options = options
-    @options[:name] ||= l(options[:label] || "field_#{field}".gsub(/_id$/, ''))
+    @options[:name] ||= l(options[:label] || "field_#{field}".delete_suffix('_id'))
     # Consider filters with a Proc for values as remote by default
     @remote = options.key?(:remote) ? options[:remote] : options[:values].is_a?(Proc)
   end
index 2ccd225e6989759b83d55fd0060bc8c8f9f0ee2e..7e3929d3f66ffb3892eb769aa529b9bd88fc995b 100644 (file)
@@ -17,7 +17,7 @@
   <% Tracker::CORE_FIELDS.each do |field| %>
   <label class="block">
     <%= check_box_tag 'tracker[core_fields][]', field, @tracker.core_fields.include?(field), :id => nil %>
-    <%= l("field_#{field}".sub(/_id$/, '')) %>
+    <%= l("field_#{field}".delete_suffix('_id')) %>
   </label>
   <% end %>
 </p>
index a9fe49351b6ce9a5d5ef628c689885144fe216a8..c4de3ab454cae735cc3303d8d778d29d9176f2dd 100644 (file)
@@ -26,7 +26,7 @@
       </tr>
       <% Tracker::CORE_FIELDS.each do |field| %>
       <tr>
-        <% field_name = l("field_#{field}".sub(/_id$/, '')) %>
+        <% field_name = l("field_#{field}".delete_suffix('_id')) %>
         <td class="name">
           <%= link_to_function('', "toggleCheckboxesBySelector('input.core-field-#{field}')",
                                :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}",
index 9a323896393b2ebb4ed3000374e1a875274b3ec4..327cdd778c8f1b94d6b457ffbe984296eef8380a 100644 (file)
@@ -4,7 +4,7 @@ module ActiveRecord
   class Base
     # Translate attribute names for validation errors display
     def self.human_attribute_name(attr, options = {})
-      prepared_attr = attr.to_s.sub(/_id$/, '').sub(/^.+\./, '')
+      prepared_attr = attr.to_s.delete_suffix('_id').sub(/^.+\./, '')
       class_prefix = name.underscore.tr('/', '_')
 
       redmine_default = [
index 989e51c32d9a52454ac6bca0ca844f516fc55e84..bd31c7cde3c47a301cb2abe135e01f4ae4ff99c9 100644 (file)
@@ -91,12 +91,12 @@ module Redmine
       if both_git_diff
         if file_name && arg == "/dev/null"
           # keep the original file name
-          @file_name = file_name.sub(%r{^a/}, '')
+          @file_name = file_name.delete_prefix('a/')
         else
           # remove leading a/
-          @previous_file_name = file_name.sub(%r{^a/}, '') unless file_name == "/dev/null"
+          @previous_file_name = file_name.delete_prefix('a/') unless file_name == "/dev/null"
           # remove leading b/
-          @file_name = arg.sub(%r{^b/}, '')
+          @file_name = arg.delete_prefix('b/')
 
           @previous_file_name = nil if @previous_file_name == @file_name
         end
index 95af87a4c6ee78d28a755767a46f50750a8fa982..9a202190b88e359bf7303f33e4510a6f931545aa 100644 (file)
@@ -81,7 +81,7 @@ module Redmine
         Dir.glob(
           "#{Redmine::Plugin.directory}/*/app/views/my/blocks/_*.{rhtml,erb}"
         ).inject({}) do |h, file|
-          name = File.basename(file).split('.').first.gsub(/^_/, '')
+          name = File.basename(file).split('.').first.delete_prefix('_')
           h[name] = {:label => name.to_sym, :partial => "my/blocks/#{name}"}
           h
         end
index ff51f00832a5c56c89d7857c7127a2880cb70040..768b36ef7a234a8033bae0c6f0168f8446299775 100644 (file)
@@ -110,7 +110,7 @@ module Redmine
 
       def assets(dir, ext=nil)
         if ext
-          Dir.glob("#{path}/#{dir}/*.#{ext}").collect {|f| File.basename(f).gsub(/\.#{ext}$/, '')}
+          Dir.glob("#{path}/#{dir}/*.#{ext}").collect {|f| File.basename(f).delete_suffix(".#{ext}")}
         else
           Dir.glob("#{path}/#{dir}/*").collect {|f| File.basename(f)}
         end
index 8df5969489bc1b73a5c3bd9a74b16b9222a8ff8e..bd70d4deb577cf4b9f68083d69870590d336be41 100644 (file)
@@ -51,7 +51,7 @@ module Redmine
       end
 
       def shortened_filename(source_file)
-        source_file.filename.gsub(SimpleCov.root, '.').gsub(/^\.\//, '')
+        source_file.filename.gsub(SimpleCov.root, '.').delete_prefix('./')
       end
 
       def link_to_source_file(source_file)
index b6e4ed6ce3e6f38555b06cccd8bace4a7c61b685..bc13e64b584fccc4282475ff95730f761816c5e5 100644 (file)
@@ -596,7 +596,7 @@ class CustomFieldsControllerTest < Redmine::ControllerTest
   def custom_field_classes
     files =
       Dir.glob(File.join(Rails.root, 'app/models/*_custom_field.rb')).
-        map {|f| File.basename(f).sub(/\.rb$/, '')}
+        map {|f| File.basename(f).delete_suffix('.rb')}
     classes = files.map {|x| x.classify.constantize}
     assert classes.size > 0
     classes