mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/psych/lib/psych/scalar_scanner.rb: Strings that look like dates
should be treated as strings and not dates. * test/psych/test_scalar_scanner.rb: corresponding tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
07fa1c9144
commit
9f688d53c2
3 changed files with 35 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
Sun Dec 18 12:03:13 2011 Aaron Patterson <aaron@tenderlovemaking.com>
|
||||||
|
|
||||||
|
* ext/psych/lib/psych/scalar_scanner.rb: Strings that look like dates
|
||||||
|
should be treated as strings and not dates.
|
||||||
|
|
||||||
|
* test/psych/test_scalar_scanner.rb: corresponding tests.
|
||||||
|
|
||||||
Sun Dec 18 09:43:21 2011 CHIKANAGA Tomoyuki <nagachika00@gmail.com>
|
Sun Dec 18 09:43:21 2011 CHIKANAGA Tomoyuki <nagachika00@gmail.com>
|
||||||
|
|
||||||
* test/thread/test_queue.rb (test_thr_kill): extend timeout.
|
* test/thread/test_queue.rb (test_thr_kill): extend timeout.
|
||||||
|
|
|
@ -46,9 +46,13 @@ module Psych
|
||||||
end
|
end
|
||||||
when TIME
|
when TIME
|
||||||
parse_time string
|
parse_time string
|
||||||
when /^\d{4}-\d{1,2}-\d{1,2}$/
|
when /^\d{4}-(?:1[012]|0\d|\d)-(?:[12]\d|3[01]|0\d|\d)$/
|
||||||
require 'date'
|
require 'date'
|
||||||
Date.strptime(string, '%Y-%m-%d')
|
begin
|
||||||
|
Date.strptime(string, '%Y-%m-%d')
|
||||||
|
rescue ArgumentError
|
||||||
|
string
|
||||||
|
end
|
||||||
when /^\.inf$/i
|
when /^\.inf$/i
|
||||||
1 / 0.0
|
1 / 0.0
|
||||||
when /^-\.inf$/i
|
when /^-\.inf$/i
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
require 'psych/helper'
|
require 'psych/helper'
|
||||||
|
require 'date'
|
||||||
|
|
||||||
module Psych
|
module Psych
|
||||||
class TestScalarScanner < TestCase
|
class TestScalarScanner < TestCase
|
||||||
|
@ -20,6 +21,27 @@ module Psych
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_scan_bad_dates
|
||||||
|
x = '2000-15-01'
|
||||||
|
assert_equal x, @ss.tokenize(x)
|
||||||
|
|
||||||
|
x = '2000-10-51'
|
||||||
|
assert_equal x, @ss.tokenize(x)
|
||||||
|
|
||||||
|
x = '2000-10-32'
|
||||||
|
assert_equal x, @ss.tokenize(x)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_scan_good_edge_date
|
||||||
|
x = '2000-1-31'
|
||||||
|
assert_equal Date.strptime(x, '%Y-%m-%d'), @ss.tokenize(x)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_scan_bad_edge_date
|
||||||
|
x = '2000-11-31'
|
||||||
|
assert_equal x, @ss.tokenize(x)
|
||||||
|
end
|
||||||
|
|
||||||
def test_scan_date
|
def test_scan_date
|
||||||
date = '1980-12-16'
|
date = '1980-12-16'
|
||||||
token = @ss.tokenize date
|
token = @ss.tokenize date
|
||||||
|
|
Loading…
Reference in a new issue