diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2020-06-03 15:28:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-03 15:28:23 -0700 |
commit | 9f8c3655376aecec6056adb2bb12665971980f9f (patch) | |
tree | 61c5c4f9f8aff79f31da88d93a20bc76eda8f2e5 | |
parent | a8317a1c26f2efa7d2b44abc7ebe050f8f0ef341 (diff) | |
parent | ac2d2c9b1bb42f3cad9f176b4072c2db58978d6d (diff) | |
download | psych-9f8c3655376aecec6056adb2bb12665971980f9f.zip |
Merge pull request #438 from mthorn/master
Fix ArgumentError with leading and trailing underscores in number str…
-rw-r--r-- | lib/psych/scalar_scanner.rb | 2 | ||||
-rw-r--r-- | test/psych/test_scalar_scanner.rb | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/psych/scalar_scanner.rb b/lib/psych/scalar_scanner.rb index cea2a45..d565a33 100644 --- a/lib/psych/scalar_scanner.rb +++ b/lib/psych/scalar_scanner.rb @@ -101,7 +101,7 @@ module Psych ### # Parse and return an int from +string+ def parse_int string - Integer(string.gsub(/[,]/, '')) + Integer(string.gsub(/[,_]/, '')) end ### diff --git a/test/psych/test_scalar_scanner.rb b/test/psych/test_scalar_scanner.rb index d12a905..1bd6488 100644 --- a/test/psych/test_scalar_scanner.rb +++ b/test/psych/test_scalar_scanner.rb @@ -120,6 +120,7 @@ module Psych assert_equal 123_456_789, ss.tokenize('123_456_789') assert_equal 123_456_789, ss.tokenize('123,456,789') assert_equal 123_456_789, ss.tokenize('1_2,3,4_5,6_789') + assert_equal 123_456_789, ss.tokenize('1_2,3,4_5,6_789_') assert_equal 0b010101010, ss.tokenize('0b010101010') assert_equal 0b010101010, ss.tokenize('0b0,1_0,1_,0,1_01,0') @@ -129,6 +130,8 @@ module Psych assert_equal 0x123456789abcdef, ss.tokenize('0x123456789abcdef') assert_equal 0x123456789abcdef, ss.tokenize('0x12_,34,_56,_789abcdef') + assert_equal 0x123456789abcdef, ss.tokenize('0x_12_,34,_56,_789abcdef') + assert_equal 0x123456789abcdef, ss.tokenize('0x12_,34,_56,_789abcdef__') end end end |