Rubocop fixes for ruby 2.5
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 13 Mar 2019 09:33:33 +0000 (10:33 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 13 Mar 2019 09:33:33 +0000 (10:33 +0100)
.rubocop.yml
app/controllers/geocoder_controller.rb
app/helpers/browse_tags_helper.rb
app/models/language.rb
bin/yarn
lib/password_hash.rb
test/controllers/api/changesets_controller_test.rb
test/models/message_test.rb

index b33f9046cb87c117925cc8e290392f2021aae270..690d984f74ad8c94962a24c2224c2107fcbe4841 100644 (file)
@@ -1,7 +1,7 @@
 inherit_from: .rubocop_todo.yml
 
 AllCops:
-  TargetRubyVersion: 2.3
+  TargetRubyVersion: 2.5
 
 Rails:
   Enabled: true
index b9cf8d096f35a635e8e9ad957258f097e51e8300..1270a3274b7d6df690d71247880d1a6020f42ec2 100644 (file)
@@ -17,11 +17,11 @@ class GeocoderController < ApplicationController
       @sources.push "osm_nominatim_reverse"
       @sources.push "geonames_reverse" if defined?(GEONAMES_USERNAME)
     elsif @params[:query]
-      if @params[:query] =~ /^\d{5}(-\d{4})?$/
+      if /^\d{5}(-\d{4})?$/.match?(@params[:query])
         @sources.push "osm_nominatim"
-      elsif @params[:query] =~ /^(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW])\s*[0-9][ABD-HJLNP-UW-Z]{2})$/i
+      elsif /^(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKS-UW])\s*[0-9][ABD-HJLNP-UW-Z]{2})$/i.match?(@params[:query])
         @sources.push "osm_nominatim"
-      elsif @params[:query] =~ /^[A-Z]\d[A-Z]\s*\d[A-Z]\d$/i
+      elsif /^[A-Z]\d[A-Z]\s*\d[A-Z]\d$/i.match?(@params[:query])
         @sources.push "ca_postcode"
         @sources.push "osm_nominatim"
       else
index 7c43511c45bcfe7579d91602fa2b25852f83d351..e25df03edfd490a0741baff0584fd071120bf56d 100644 (file)
@@ -120,7 +120,7 @@ module BrowseTagsHelper
     #
     # Also accepting / as a visual separator although not given in RFC 3966,
     # because it is used as a visual separator in OSM data in some countries.
-    if value =~ %r{^\s*\+[\d\s\(\)/\.-]{6,25}\s*(;\s*\+[\d\s\(\)/\.-]{6,25}\s*)*$}
+    if %r{^\s*\+[\d\s\(\)/\.-]{6,25}\s*(;\s*\+[\d\s\(\)/\.-]{6,25}\s*)*$}.match?(value)
       return value.split(";").map do |phone_number|
         # for display, remove leading and trailing whitespace
         phone_number = phone_number.strip
index 67e98569bbf14315099efb4b79d40dc7ef32e2ad..bb1aa4bd26016758ad3d8b66d09a7527a72b8ad8 100644 (file)
@@ -15,14 +15,12 @@ class Language < ActiveRecord::Base
   def self.load(file)
     Language.transaction do
       YAML.safe_load(File.read(file)).each do |k, v|
-        begin
-          Language.update(k, :english_name => v["english"], :native_name => v["native"])
-        rescue ActiveRecord::RecordNotFound
-          Language.create do |l|
-            l.code = k
-            l.english_name = v["english"]
-            l.native_name = v["native"]
-          end
+        Language.update(k, :english_name => v["english"], :native_name => v["native"])
+      rescue ActiveRecord::RecordNotFound
+        Language.create do |l|
+          l.code = k
+          l.english_name = v["english"]
+          l.native_name = v["native"]
         end
       end
     end
index 38f278aa087e2bbab837f887c2ff66b90b40d8be..99e5e77285b1827fe23d420604d7c90eff4b44d7 100755 (executable)
--- a/bin/yarn
+++ b/bin/yarn
@@ -1,11 +1,9 @@
 #!/usr/bin/env ruby
 APP_ROOT = File.expand_path("..", __dir__)
 Dir.chdir(APP_ROOT) do
-  begin
-    exec "yarnpkg", *ARGV
-  rescue Errno::ENOENT
-    warn "Yarn executable was not detected in the system."
-    warn "Download Yarn at https://yarnpkg.com/en/docs/install"
-    exit 1
-  end
+  exec "yarnpkg", *ARGV
+rescue Errno::ENOENT
+  warn "Yarn executable was not detected in the system."
+  warn "Download Yarn at https://yarnpkg.com/en/docs/install"
+  exit 1
 end
index c65df2c4fd7fc070496cf8dac2c5851e3e12f25a..5bafe6dda273ab18af7f530213a1010bc487a846 100644 (file)
@@ -18,7 +18,7 @@ module PasswordHash
   def self.check(hash, salt, candidate)
     if salt.nil?
       candidate = Digest::MD5.hexdigest(candidate)
-    elsif salt =~ /!/
+    elsif /!/.match?(salt)
       algorithm, iterations, salt = salt.split("!")
       size = Base64.strict_decode64(hash).length
       candidate = self.hash(candidate, salt, iterations.to_i, size, algorithm)
@@ -32,7 +32,7 @@ module PasswordHash
   def self.upgrade?(hash, salt)
     if salt.nil?
       return true
-    elsif salt =~ /!/
+    elsif /!/.match?(salt)
       algorithm, iterations, salt = salt.split("!")
       return true if Base64.strict_decode64(salt).length != SALT_BYTE_SIZE
       return true if Base64.strict_decode64(hash).length != HASH_BYTE_SIZE
index 75896b202ac7ff24624f4ef52515bc1ac420e28e..daf062154913559b267465be7beb1718f710ff0c 100644 (file)
@@ -165,12 +165,10 @@ module Api
     # check that a changeset that doesn't exist returns an appropriate message
     def test_show_not_found
       [0, -32, 233455644, "afg", "213"].each do |id|
-        begin
-          get :show, :params => { :id => id }
-          assert_response :not_found, "should get a not found"
-        rescue ActionController::UrlGenerationError => ex
-          assert_match(/No route matches/, ex.to_s)
-        end
+        get :show, :params => { :id => id }
+        assert_response :not_found, "should get a not found"
+      rescue ActionController::UrlGenerationError => ex
+        assert_match(/No route matches/, ex.to_s)
       end
     end
 
@@ -239,23 +237,19 @@ module Api
 
       # First try to do it with no auth
       cs_ids.each do |id|
-        begin
-          put :close, :params => { :id => id }
-          assert_response :unauthorized, "Shouldn't be able close the non-existant changeset #{id}, when not authorized"
-        rescue ActionController::UrlGenerationError => ex
-          assert_match(/No route matches/, ex.to_s)
-        end
+        put :close, :params => { :id => id }
+        assert_response :unauthorized, "Shouldn't be able close the non-existant changeset #{id}, when not authorized"
+      rescue ActionController::UrlGenerationError => ex
+        assert_match(/No route matches/, ex.to_s)
       end
 
       # Now try with auth
       basic_authorization create(:user).email, "test"
       cs_ids.each do |id|
-        begin
-          put :close, :params => { :id => id }
-          assert_response :not_found, "The changeset #{id} doesn't exist, so can't be closed"
-        rescue ActionController::UrlGenerationError => ex
-          assert_match(/No route matches/, ex.to_s)
-        end
+        put :close, :params => { :id => id }
+        assert_response :not_found, "The changeset #{id} doesn't exist, so can't be closed"
+      rescue ActionController::UrlGenerationError => ex
+        assert_match(/No route matches/, ex.to_s)
       end
     end
 
index 18b75f451e6aabe0aabef026e7750d136d23d115..9c321d3c39c7ff5c317a14235d393c40d011ae5d 100644 (file)
@@ -53,20 +53,18 @@ class MessageTest < ActiveSupport::TestCase
                          "\x82\x82",     # multibyte continuations without multibyte identifier
                          "\xe1\x82\x4a"] # three-byte identifier, contination and (incorrectly) plain ASCII
     invalid_sequences.each do |char|
-      begin
-        # create a message and save to the database
-        msg = make_message(char, 1)
-        # if the save throws, thats fine and the test should pass, as we're
-        # only testing invalid sequences anyway.
-        msg.save!
-
-        # get the saved message back and check that it is identical - i.e:
-        # its OK to accept invalid UTF-8 as long as we return it unmodified.
-        db_msg = msg.class.find(msg.id)
-        assert_equal char, db_msg.title, "Database silently truncated message title"
-      rescue ArgumentError => ex
-        assert_equal ex.to_s, "invalid byte sequence in UTF-8"
-      end
+      # create a message and save to the database
+      msg = make_message(char, 1)
+      # if the save throws, thats fine and the test should pass, as we're
+      # only testing invalid sequences anyway.
+      msg.save!
+
+      # get the saved message back and check that it is identical - i.e:
+      # its OK to accept invalid UTF-8 as long as we return it unmodified.
+      db_msg = msg.class.find(msg.id)
+      assert_equal char, db_msg.title, "Database silently truncated message title"
+    rescue ArgumentError => ex
+      assert_equal ex.to_s, "invalid byte sequence in UTF-8"
     end
   end