From 1ca77d6ddac1910e85eb7ef4dedf6f1e885307e1 Mon Sep 17 00:00:00 2001 From: Andy Allan Date: Wed, 13 Mar 2019 10:33:33 +0100 Subject: [PATCH] Rubocop fixes for ruby 2.5 --- .rubocop.yml | 2 +- app/controllers/geocoder_controller.rb | 6 ++-- app/helpers/browse_tags_helper.rb | 2 +- app/models/language.rb | 14 ++++----- bin/yarn | 12 ++++---- lib/password_hash.rb | 4 +-- .../api/changesets_controller_test.rb | 30 ++++++++----------- test/models/message_test.rb | 26 ++++++++-------- 8 files changed, 42 insertions(+), 54 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index b33f9046c..690d984f7 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,7 +1,7 @@ inherit_from: .rubocop_todo.yml AllCops: - TargetRubyVersion: 2.3 + TargetRubyVersion: 2.5 Rails: Enabled: true diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb index b9cf8d096..1270a3274 100644 --- a/app/controllers/geocoder_controller.rb +++ b/app/controllers/geocoder_controller.rb @@ -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 diff --git a/app/helpers/browse_tags_helper.rb b/app/helpers/browse_tags_helper.rb index 7c43511c4..e25df03ed 100644 --- a/app/helpers/browse_tags_helper.rb +++ b/app/helpers/browse_tags_helper.rb @@ -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 diff --git a/app/models/language.rb b/app/models/language.rb index 67e98569b..bb1aa4bd2 100644 --- a/app/models/language.rb +++ b/app/models/language.rb @@ -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 diff --git a/bin/yarn b/bin/yarn index 38f278aa0..99e5e7728 100755 --- 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 diff --git a/lib/password_hash.rb b/lib/password_hash.rb index c65df2c4f..5bafe6dda 100644 --- a/lib/password_hash.rb +++ b/lib/password_hash.rb @@ -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 diff --git a/test/controllers/api/changesets_controller_test.rb b/test/controllers/api/changesets_controller_test.rb index 75896b202..daf062154 100644 --- a/test/controllers/api/changesets_controller_test.rb +++ b/test/controllers/api/changesets_controller_test.rb @@ -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 diff --git a/test/models/message_test.rb b/test/models/message_test.rb index 18b75f451..9c321d3c3 100644 --- a/test/models/message_test.rb +++ b/test/models/message_test.rb @@ -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 -- 2.39.5