summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ext/psych/lib/psych/scalar_scanner.rb2
-rw-r--r--test/psych/test_string.rb6
3 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a61c9d7df0..35a83a1a54 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Nov 7 20:31:52 2011 Aaron Patterson <aaron@tenderlovemaking.com>
+
+ * ext/psych/lib/psych/scalar_scanner.rb: make sure strings that look
+ like base 60 numbers are serialized as quoted strings.
+ * test/psych/test_string.rb: test for change.
+
Mon Nov 7 20:26:37 2011 Aaron Patterson <aaron@tenderlovemaking.com>
* test/psych/test_yamlstore.rb: make test case inherit from MiniTest,
diff --git a/ext/psych/lib/psych/scalar_scanner.rb b/ext/psych/lib/psych/scalar_scanner.rb
index e390cbb16a..a265a2baf3 100644
--- a/ext/psych/lib/psych/scalar_scanner.rb
+++ b/ext/psych/lib/psych/scalar_scanner.rb
@@ -61,7 +61,7 @@ module Psych
else
string.sub(/^:/, '').to_sym
end
- when /^[-+]?[1-9][0-9_]*(:[0-5]?[0-9])+$/
+ when /^[-+]?[0-9][0-9_]*(:[0-5]?[0-9])+$/
i = 0
string.split(':').each_with_index do |n,e|
i += (n.to_i * 60 ** (e - 2).abs)
diff --git a/test/psych/test_string.rb b/test/psych/test_string.rb
index 51f1280abf..cffc12163b 100644
--- a/test/psych/test_string.rb
+++ b/test/psych/test_string.rb
@@ -2,6 +2,12 @@ require 'psych/helper'
module Psych
class TestString < TestCase
+ def test_string_with_base_60
+ yaml = Psych.dump '01:03:05'
+ assert_match "'01:03:05'", yaml
+ assert_equal '01:03:05', Psych.load(yaml)
+ end
+
def test_tagged_binary_should_be_dumped_as_binary
string = "hello world!"
string.force_encoding 'ascii-8bit'