diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-07 07:38:25 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-07-07 07:38:25 +0000 |
commit | 9ff1e787f915539b1980654e3d3d2013ff5c81d2 (patch) | |
tree | 8d0fc9ca5b4dbfa9885dc56862292d55091bcaac /ruby_1_8_6/lib/yaml/tag.rb | |
parent | 441546edcfbb1b346c87b69c5f578d1a0e522e06 (diff) |
wrong commit; sorryv1_8_6_269
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_269@17938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_6/lib/yaml/tag.rb')
-rw-r--r-- | ruby_1_8_6/lib/yaml/tag.rb | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/ruby_1_8_6/lib/yaml/tag.rb b/ruby_1_8_6/lib/yaml/tag.rb deleted file mode 100644 index 0fb6bef9a0..0000000000 --- a/ruby_1_8_6/lib/yaml/tag.rb +++ /dev/null @@ -1,91 +0,0 @@ -# -*- mode: ruby; ruby-indent-level: 4; tab-width: 4 -*- vim: sw=4 ts=4 -# $Id$ -# -# = yaml/tag.rb: methods for associating a taguri to a class. -# -# Author:: why the lucky stiff -# -module YAML - # A dictionary of taguris which map to - # Ruby classes. - @@tagged_classes = {} - - # - # Associates a taguri _tag_ with a Ruby class _cls_. The taguri is used to give types - # to classes when loading YAML. Taguris are of the form: - # - # tag:authorityName,date:specific - # - # The +authorityName+ is a domain name or email address. The +date+ is the date the type - # was issued in YYYY or YYYY-MM or YYYY-MM-DD format. The +specific+ is a name for - # the type being added. - # - # For example, built-in YAML types have 'yaml.org' as the +authorityName+ and '2002' as the - # +date+. The +specific+ is simply the name of the type: - # - # tag:yaml.org,2002:int - # tag:yaml.org,2002:float - # tag:yaml.org,2002:timestamp - # - # The domain must be owned by you on the +date+ declared. If you don't own any domains on the - # date you declare the type, you can simply use an e-mail address. - # - # tag:why@ruby-lang.org,2004:notes/personal - # - def YAML.tag_class( tag, cls ) - if @@tagged_classes.has_key? tag - warn "class #{ @@tagged_classes[tag] } held ownership of the #{ tag } tag" - end - @@tagged_classes[tag] = cls - end - - # Returns the complete dictionary of taguris, paired with classes. The key for - # the dictionary is the full taguri. The value for each key is the class constant - # associated to that taguri. - # - # YAML.tagged_classes["tag:yaml.org,2002:int"] => Integer - # - def YAML.tagged_classes - @@tagged_classes - end -end - -class Module - # :stopdoc: - - # Adds a taguri _tag_ to a class, used when dumping or loading the class - # in YAML. See YAML::tag_class for detailed information on typing and - # taguris. - def yaml_as( tag, sc = true ) - verbose, $VERBOSE = $VERBOSE, nil - class_eval <<-"end;", __FILE__, __LINE__+1 - attr_writer :taguri - def taguri - if respond_to? :to_yaml_type - YAML::tagurize( to_yaml_type[1..-1] ) - else - return @taguri if defined?(@taguri) and @taguri - tag = #{ tag.dump } - if self.class.yaml_tag_subclasses? and self.class != YAML::tagged_classes[tag] - tag = "\#{ tag }:\#{ self.class.yaml_tag_class_name }" - end - tag - end - end - def self.yaml_tag_subclasses?; #{ sc ? 'true' : 'false' }; end - end; - YAML::tag_class tag, self - ensure - $VERBOSE = verbose - end - # Transforms the subclass name into a name suitable for display - # in a subclassed tag. - def yaml_tag_class_name - self.name - end - # Transforms the subclass name found in the tag into a Ruby - # constant name. - def yaml_tag_read_class( name ) - name - end -end |