1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[ruby/psych] Replace A-Za-z with [:alpha:]

https://github.com/ruby/psych/commit/8ec36494fb
This commit is contained in:
jory-graham 2021-08-05 13:58:39 -04:00 committed by Hiroshi SHIBATA
parent 9ed2cb26de
commit db154b20cc
2 changed files with 23 additions and 1 deletions

View file

@ -33,7 +33,7 @@ module Psych
# Check for a String type, being careful not to get caught by hash keys, hex values, and
# special floats (e.g., -.inf).
if string.match?(/^[^\d\.:-]?[A-Za-z_\s!@#\$%\^&\*\(\)\{\}\<\>\|\/\\~;=]+/) || string.match?(/\n/)
if string.match?(%r{^[^\d.:-]?[[:alpha:]_\s!@#$%\^&*(){}<>|/\\~;=]+}) || string.match?(/\n/)
return string if string.length > 5
if string.match?(/^[^ytonf~]/i)

View file

@ -156,5 +156,27 @@ module Psych
def test_scan_plus_dot
assert_equal '+.', ss.tokenize('+.')
end
class MatchCallCounter < String
attr_reader :match_call_count
def match?(pat)
@match_call_count ||= 0
@match_call_count += 1
super
end
end
def test_scan_ascii_matches_quickly
ascii = MatchCallCounter.new('abcdefghijklmnopqrstuvwxyz')
ss.tokenize(ascii)
assert_equal 1, ascii.match_call_count
end
def test_scan_unicode_matches_quickly
unicode = MatchCallCounter.new('鳥かご関連用品')
ss.tokenize(unicode)
assert_equal 1, unicode.match_call_count
end
end
end