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

* 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
This commit is contained in:
nobu 2004-05-15 04:38:39 +00:00
parent 36de1f6acb
commit 79133371e8
5 changed files with 47 additions and 21 deletions

View file

@ -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')

View file

@ -1,4 +1,5 @@
MANIFEST
depend
extconf.rb
bytecode.c
emitter.c

10
ext/syck/depend Normal file
View file

@ -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

View file

@ -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}" ),

View file

@ -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
#