diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-15 04:38:39 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-15 04:38:39 +0000 |
commit | 79133371e8abb1a7cbdd24b3c62ce04d7227c4b0 (patch) | |
tree | 26a8553d874d5eed6566d4a951146c44dd4c67e1 | |
parent | 36de1f6acbb66fba5bbe37fb119530e48060b7d6 (diff) |
* ext/syck/MANIFEST, ext/syck/depend: new file.
* lib/yaml/rubytypes.rb: range of exponential floats. [ruby-core:02824]
* test/yaml/test_yaml.rb: tests for strings start with colon and some
round trip.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | ext/syck/MANIFEST | 1 | ||||
-rw-r--r-- | ext/syck/depend | 10 | ||||
-rw-r--r-- | lib/yaml/rubytypes.rb | 6 | ||||
-rw-r--r-- | test/yaml/test_yaml.rb | 40 |
5 files changed, 47 insertions, 21 deletions
@@ -1,3 +1,12 @@ +Sat May 15 13:38:33 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ext/syck/MANIFEST, ext/syck/depend: new file. + + * lib/yaml/rubytypes.rb: range of exponential floats. [ruby-core:02824] + + * test/yaml/test_yaml.rb: tests for strings start with colon and some + round trip. + Sat May 15 12:04:58 2004 why the lucky stiff <why@ruby-lang.org> * lib/yaml.rb: removed fallback to pure Ruby parser. @@ -44,7 +53,7 @@ Fri May 14 21:29:26 2004 Yukihiro Matsumoto <matz@ruby-lang.org> Fri May 14 18:37:49 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> * ext/tk/lib/tk/canvas.rb: improve coords support for canvas - items. Now, supports all of the followings. + items. Now, supports all of the followings. TkcLine.new(c, 0, 0, 100, 100, :fill=>'red') TkcLine.new(c, [0, 0, 100, 100], :fill=>'red') TkcLine.new(c, [0, 0], [100, 100], :fill=>'red') diff --git a/ext/syck/MANIFEST b/ext/syck/MANIFEST index bb126fa530..d1e7ef4e58 100644 --- a/ext/syck/MANIFEST +++ b/ext/syck/MANIFEST @@ -1,4 +1,5 @@ MANIFEST +depend extconf.rb bytecode.c emitter.c diff --git a/ext/syck/depend b/ext/syck/depend new file mode 100644 index 0000000000..05303cdf47 --- /dev/null +++ b/ext/syck/depend @@ -0,0 +1,10 @@ +handler.o: handler.c syck.h +emitter.o: emitter.c syck.h +implicit.o: implicit.c syck.h +gram.o: gram.c syck.h +bytecode.o: bytecode.c syck.h gram.h +node.o: node.c syck.h +syck.o: syck.c syck.h +token.o: token.c syck.h gram.h +yaml2byte.o: yaml2byte.c syck.h yamlbyte.h +rubyext.o: rubyext.c syck.h diff --git a/lib/yaml/rubytypes.rb b/lib/yaml/rubytypes.rb index 1f7f49633c..239688a6b2 100644 --- a/lib/yaml/rubytypes.rb +++ b/lib/yaml/rubytypes.rb @@ -371,7 +371,7 @@ end symbol_proc = Proc.new { |type, val| if String === val - val = YAML::load( "--- #{val}") if val =~ /^["'].*["']$/ + val = YAML::load( "--- #{val}") if val =~ /^["'].*['"]$/ val.intern else raise YAML::Error, "Invalid Symbol: " + val.inspect @@ -414,9 +414,9 @@ end YAML.add_ruby_type( /^range/ ) { |type, val| type, obj_class = YAML.read_type_class( type, ::Range ) - inr = '(\w+|[+-]*\d+(?:\.\d+)?|"(?:[^\\"]|\\.)*")' + inr = %r'(\w+|[+-]?\d+(?:\.\d+)?(?:e[+-]\d+)?|"(?:[^\\"]|\\.)*")' opts = {} - if String === val and val =~ /^#{inr}(\.{2,3})#{inr}$/ + if String === val and val =~ /^#{inr}(\.{2,3})#{inr}$/o r1, rdots, r2 = $1, $2, $3 opts = { 'begin' => YAML.load( "--- #{r1}" ), diff --git a/test/yaml/test_yaml.rb b/test/yaml/test_yaml.rb index 9b1a4f4d3b..05332a6e40 100644 --- a/test/yaml/test_yaml.rb +++ b/test/yaml/test_yaml.rb @@ -33,6 +33,10 @@ class YAML_Unit_Tests < Test::Unit::TestCase assert_equal( obj, YAML::parse( yaml ).transform ) end + def assert_cycle( obj ) + assert_equal( obj, YAML::load( obj.to_yaml ) ) + end + def assert_path_segments( path, segments ) YAML::YPath.each_path( path ) { |choice| assert_equal( choice.segments, segments.shift ) @@ -71,10 +75,14 @@ EOY def test_basic_strings # Common string types + assert_cycle("x") + assert_cycle(":x") + assert_cycle(":") assert_parse_only( { 1 => 'simple string', 2 => 42, 3 => '1 Single Quoted String', 4 => 'YAML\'s Double "Quoted" String', 5 => "A block\n with several\n lines.\n", - 6 => "A \"chomped\" block", 7 => "A folded\n string\n" }, <<EOY + 6 => "A \"chomped\" block", 7 => "A folded\n string\n", 8 => ": started string" }, + <<EOY 1: simple string 2: 42 3: '1 Single Quoted String' @@ -89,6 +97,7 @@ EOY A folded string +8: ": started string" EOY ) end @@ -380,7 +389,7 @@ EOY assert_parse_only( [ "Mark McGwire's year was crippled by a knee injury.\n" ], <<EOY - > - Mark McGwire's + Mark McGwire\'s year was crippled by a knee injury. EOY @@ -909,7 +918,7 @@ literal: | single line break, but does not start with one. -is equal to: "The \\ \' \\" characters may \\ +is equal to: "The \\ ' \\" characters may \\ be\\nfreely used. Leading white\\n space \\ is significant.\\n\\nLine breaks are \\ significant.\\nThus this value contains \\ @@ -1031,7 +1040,7 @@ EOY def test_ruby_regexp # Test Ruby regular expressions assert_to_yaml( - { 'simple' => /a.b/, 'complex' => /\A"((?:[^"]|\")+)"/, + { 'simple' => /a.b/, 'complex' => %r'\A"((?:[^"]|\")+)"', 'case-insensitive' => /George McFly/i }, <<EOY case-insensitive: !ruby/regexp "/George McFly/i" complex: !ruby/regexp "/\\\\A\\"((?:[^\\"]|\\\\\\")+)\\"/" @@ -1191,7 +1200,7 @@ EOY require 'yaml' t = Time.now 5.times do - assert_equal( t, YAML.load( YAML.dump( t ) ) ) + assert_cycle(t) end end @@ -1202,22 +1211,19 @@ EOY # # From Minero Aoki [ruby-core:02306] # - t = "a".."z" - assert_equal( t, YAML.load( YAML.dump( t ) ) ) + assert_cycle("a".."z") # # From Nobu Nakada [ruby-core:02311] # - t = 0..1 - assert_equal( t, YAML.load( YAML.dump( t ) ) ) - t = "0".."1" - assert_equal( t, YAML.load( YAML.dump( t ) ) ) - t = ".."..."..." - assert_equal( t, YAML.load( YAML.dump( t ) ) ) - t = ".rb"..".pl" - assert_equal( t, YAML.load( YAML.dump( t ) ) ) - t = ".rb"...".pl" - assert_equal( t, YAML.load( YAML.dump( t ) ) ) + assert_cycle(0..1) + assert_cycle(1.0e20 .. 2.0e20) + assert_cycle("0".."1") + assert_cycle(".."..."...") + assert_cycle(".rb"..".pl") + assert_cycle(".rb"...".pl") + assert_cycle('"'...".") + assert_cycle("'"...".") end # |