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

* lib/yaml/basenode.rb (YAML::BaseNode::match_segment): fix typo.

[ruby-dev:27237], [ruby-core:05854]

* lib/yaml/tag.rb (Module#yaml_as): suppress warnings.

* lib/yaml/types.rb (YAML::PrivateType, YAML::DomainType): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2005-09-27 22:57:53 +00:00
parent f307fa8513
commit 7567345876
5 changed files with 63 additions and 41 deletions

View file

@ -1,3 +1,12 @@
Wed Sep 28 07:56:52 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/yaml/basenode.rb (YAML::BaseNode::match_segment): fix typo.
[ruby-dev:27237], [ruby-core:05854]
* lib/yaml/tag.rb (Module#yaml_as): suppress warnings.
* lib/yaml/types.rb (YAML::PrivateType, YAML::DomainType): ditto.
Wed Sep 28 03:23:35 2005 NAKAMURA Usaku <usa@ruby-lang.org> Wed Sep 28 03:23:35 2005 NAKAMURA Usaku <usa@ruby-lang.org>
* rubysig.h: fixed build problem with --enable-pthread on platforms * rubysig.h: fixed build problem with --enable-pthread on platforms

View file

@ -76,6 +76,9 @@ SyckNode * rb_syck_bad_anchor_handler _((SyckParser *, char *));
void rb_syck_output_handler _((SyckEmitter *, char *, long)); void rb_syck_output_handler _((SyckEmitter *, char *, long));
void rb_syck_emitter_handler _((SyckEmitter *, st_data_t)); void rb_syck_emitter_handler _((SyckEmitter *, st_data_t));
int syck_parser_assign_io _((SyckParser *, VALUE)); int syck_parser_assign_io _((SyckParser *, VALUE));
VALUE syck_scalar_alloc _((VALUE class));
VALUE syck_seq_alloc _((VALUE class));
VALUE syck_map_alloc _((VALUE class));
struct parser_xtra { struct parser_xtra {
VALUE data; /* Borrowed this idea from marshal.c to fix [ruby-core:8067] problem */ VALUE data; /* Borrowed this idea from marshal.c to fix [ruby-core:8067] problem */

View file

@ -148,7 +148,7 @@ module YAML
if pred if pred
case pred case pred
when /^\.=/ when /^\.=/
pred = $' pred = $' # '
match_nodes.reject! { |n| match_nodes.reject! { |n|
n.last.value != pred n.last.value != pred
} }
@ -187,7 +187,7 @@ module YAML
v = @value.detect { |k,v| k.transform == key.first } v = @value.detect { |k,v| k.transform == key.first }
v[1] if v v[1] if v
elsif Array === @value elsif Array === @value
@value.[]( *k ) @value.[]( *key )
end end
end end

View file

@ -55,13 +55,14 @@ class Module # :nodoc: all
# in YAML. See YAML::tag_class for detailed information on typing and # in YAML. See YAML::tag_class for detailed information on typing and
# taguris. # taguris.
def yaml_as( tag, sc = true ) def yaml_as( tag, sc = true )
class_eval <<-"end;" verbose, $VERBOSE = $VERBOSE, nil
attr_accessor :taguri class_eval <<-"end;", __FILE__, __LINE__+1
attr_writer :taguri
def taguri def taguri
if respond_to? :to_yaml_type if respond_to? :to_yaml_type
YAML::tagurize( to_yaml_type[1..-1] ) YAML::tagurize( to_yaml_type[1..-1] )
else else
return @taguri if @taguri return @taguri if defined?(@taguri) and @taguri
tag = #{ tag.dump } tag = #{ tag.dump }
if self.class.yaml_tag_subclasses? and self.class != YAML::tagged_classes[tag] if self.class.yaml_tag_subclasses? and self.class != YAML::tagged_classes[tag]
tag = "\#{ tag }:\#{ self.class.yaml_tag_class_name }" tag = "\#{ tag }:\#{ self.class.yaml_tag_class_name }"
@ -72,6 +73,8 @@ class Module # :nodoc: all
def self.yaml_tag_subclasses?; #{ sc ? 'true' : 'false' }; end def self.yaml_tag_subclasses?; #{ sc ? 'true' : 'false' }; end
end; end;
YAML::tag_class tag, self YAML::tag_class tag, self
ensure
$VERBOSE = verbose
end end
# Transforms the subclass name into a name suitable for display # Transforms the subclass name into a name suitable for display
# in a subclassed tag. # in a subclassed tag.

View file

@ -1,45 +1,52 @@
# -*- mode: ruby; ruby-indent-level: 4 -*- vim: sw=4
# #
# Classes required by the full core typeset # Classes required by the full core typeset
# #
module YAML module YAML
# #
# Default private type # Default private type
# #
class PrivateType class PrivateType
def self.tag_subclasses?; false; end def self.tag_subclasses?; false; end
attr_accessor :type_id, :value attr_accessor :type_id, :value
def initialize( type, val ) verbose, $VERBOSE = $VERBOSE, nil
@type_id = type; @value = val def initialize( type, val )
@type_id = type; @value = val
@value.taguri = "x-private:#{ @type_id }" @value.taguri = "x-private:#{ @type_id }"
end end
def to_yaml( opts = {} ) def to_yaml( opts = {} )
@value.to_yaml( opts ) @value.to_yaml( opts )
end end
end ensure
$VERBOSE = verbose
end
# #
# Default domain type # Default domain type
# #
class DomainType class DomainType
def self.tag_subclasses?; false; end def self.tag_subclasses?; false; end
attr_accessor :domain, :type_id, :value attr_accessor :domain, :type_id, :value
def initialize( domain, type, val ) verbose, $VERBOSE = $VERBOSE, nil
@domain = domain; @type_id = type; @value = val def initialize( domain, type, val )
@domain = domain; @type_id = type; @value = val
@value.taguri = "tag:#{ @domain }:#{ @type_id }" @value.taguri = "tag:#{ @domain }:#{ @type_id }"
end end
def to_yaml( opts = {} ) def to_yaml( opts = {} )
@value.to_yaml( opts ) @value.to_yaml( opts )
end end
end ensure
$VERBOSE = verbose
end
# #
# Unresolved objects # Unresolved objects
# #
class Object class Object
def self.tag_subclasses?; false; end def self.tag_subclasses?; false; end
def to_yaml( opts = {} ) def to_yaml( opts = {} )
YAML::quick_emit( object_id, opts ) do |out| YAML::quick_emit( object_id, opts ) do |out|
out.map( "tag:ruby.yaml.org,2002:object:#{ @class }", to_yaml_style ) do |map| out.map( "tag:ruby.yaml.org,2002:object:#{ @class }", to_yaml_style ) do |map|
@ivars.each do |k,v| @ivars.each do |k,v|
@ -47,31 +54,31 @@ module YAML
end end
end end
end end
end end
end end
# #
# YAML Hash class to support comments and defaults # YAML Hash class to support comments and defaults
# #
class SpecialHash < ::Hash class SpecialHash < ::Hash
attr_accessor :default attr_accessor :default
def inspect def inspect
self.default.to_s self.default.to_s
end end
def to_s def to_s
self.default.to_s self.default.to_s
end end
def update( h ) def update( h )
if YAML::SpecialHash === h if YAML::SpecialHash === h
@default = h.default if h.default @default = h.default if h.default
end end
super( h ) super( h )
end end
def to_yaml( opts = {} ) def to_yaml( opts = {} )
opts[:DefaultKey] = self.default opts[:DefaultKey] = self.default
super( opts ) super( opts )
end end
end end
# #
# Builtin collection: !omap # Builtin collection: !omap