summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-04-24 13:35:44 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-04-24 13:35:44 -0700
commit700a359dc7a8d33e76ffdb31050183353a5cfd4b (patch)
treee55bf8fcdc6d46d7da8dbcd6f0542bfa9bd16dd3 /lib
parentb5814a70f2450ea37693e2704b039a6730aa7e87 (diff)
downloadpsych-700a359dc7a8d33e76ffdb31050183353a5cfd4b.zip
adding support for deprecated "add_private_type" function
Diffstat (limited to 'lib')
-rw-r--r--lib/psych.rb8
-rw-r--r--lib/psych/deprecated.rb20
-rw-r--r--lib/psych/visitors/to_ruby.rb2
3 files changed, 21 insertions, 9 deletions
diff --git a/lib/psych.rb b/lib/psych.rb
index 16602ef..59f9712 100644
--- a/lib/psych.rb
+++ b/lib/psych.rb
@@ -218,13 +218,6 @@ module Psych
@domain_types[key] = [key, block]
end
- def self.add_ruby_type type_tag, &block
- warn "#{caller[0]}: add_ruby_type is deprecated, use add_domain_type" if $VERBOSE && !caller[0].start_with?(File.dirname(__FILE__))
- domain = 'ruby.yaml.org,2002'
- key = ['tag', domain, type_tag].join ':'
- @domain_types[key] = [key, block]
- end
-
def self.remove_type type_tag
@domain_types.delete type_tag
end
@@ -241,6 +234,5 @@ module Psych
attr_accessor :dump_tags
attr_accessor :domain_types
end
-
# :startdoc:
end
diff --git a/lib/psych/deprecated.rb b/lib/psych/deprecated.rb
index 093f145..b306b85 100644
--- a/lib/psych/deprecated.rb
+++ b/lib/psych/deprecated.rb
@@ -30,6 +30,26 @@ module Psych
list.each(&block)
end
+ def self.detect_implicit thing
+ warn "#{caller[0]}: detect_implicit is deprecated" if $VERBOSE
+ return '' unless String === thing
+ return 'null' if '' == thing
+ ScalarScanner.new.tokenize(thing).class.name.downcase
+ end
+
+ def self.add_ruby_type type_tag, &block
+ warn "#{caller[0]}: add_ruby_type is deprecated, use add_domain_type" if $VERBOSE
+ domain = 'ruby.yaml.org,2002'
+ key = ['tag', domain, type_tag].join ':'
+ @domain_types[key] = [key, block]
+ end
+
+ def self.add_private_type type_tag, &block
+ warn "#{caller[0]}: add_private_type is deprecated, use add_domain_type" if $VERBOSE
+ domain = 'x-private'
+ key = [domain, type_tag].join ':'
+ @domain_types[key] = [key, block]
+ end
end
class Object
diff --git a/lib/psych/visitors/to_ruby.rb b/lib/psych/visitors/to_ruby.rb
index bbbe9a8..e28ac7b 100644
--- a/lib/psych/visitors/to_ruby.rb
+++ b/lib/psych/visitors/to_ruby.rb
@@ -17,7 +17,7 @@ module Psych
return result if @domain_types.empty? || !target.tag
key = target.tag.sub(/^[!\/]*/, '').sub(/(,\d+)\//, '\1:')
- key = "tag:#{key}" unless key.start_with?('tag:')
+ key = "tag:#{key}" unless key =~ /^(tag:|x-private)/
if @domain_types.key? key
value, block = @domain_types[key]