inherit_from: .rubocop_todo.yml
AllCops:
- TargetRubyVersion: 2.3
+ TargetRubyVersion: 2.5
Rails:
Enabled: true
@sources.push "osm_nominatim_reverse"
@sources.push "geonames_reverse" if Settings.key?(: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
#
# 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
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
#!/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
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)
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
# 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
# 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
"\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