ruby-changes:15902
From: yugui <ko1@a...>
Date: Sun, 16 May 2010 21:46:17 +0900 (JST)
Subject: [ruby-changes:15902] Ruby:r27844 (ruby_1_9_2): merges r27806 from trunk into ruby_1_9_2.
yugui 2010-05-16 21:46:09 +0900 (Sun, 16 May 2010) New Revision: 27844 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27844 Log: merges r27806 from trunk into ruby_1_9_2. -- * ext/psych/lib/psych/visitors/json_tree.rb: using factory methods for node creation * ext/psych/lib/psych/visitors/yaml_tree.rb: ditto Modified files: branches/ruby_1_9_2/ext/psych/lib/psych/visitors/json_tree.rb branches/ruby_1_9_2/ext/psych/lib/psych/visitors/yaml_tree.rb Index: ruby_1_9_2/ext/psych/lib/psych/visitors/yaml_tree.rb =================================================================== --- ruby_1_9_2/ext/psych/lib/psych/visitors/yaml_tree.rb (revision 27843) +++ ruby_1_9_2/ext/psych/lib/psych/visitors/yaml_tree.rb (revision 27844) @@ -151,7 +151,7 @@ end def visit_Integer o - append Nodes::Scalar.new o.to_s + append create_scalar o.to_s end alias :visit_TrueClass :visit_Integer alias :visit_FalseClass :visit_Integer @@ -159,11 +159,11 @@ def visit_Float o if o.nan? - append Nodes::Scalar.new '.nan' + append create_scalar '.nan' elsif o.infinite? - append Nodes::Scalar.new(o.infinite? > 0 ? '.inf' : '-.inf') + append create_scalar(o.infinite? > 0 ? '.inf' : '-.inf') else - append Nodes::Scalar.new o.to_s + append create_scalar o.to_s end end Index: ruby_1_9_2/ext/psych/lib/psych/visitors/json_tree.rb =================================================================== --- ruby_1_9_2/ext/psych/lib/psych/visitors/json_tree.rb (revision 27843) +++ ruby_1_9_2/ext/psych/lib/psych/visitors/json_tree.rb (revision 27844) @@ -1,16 +1,26 @@ module Psych module Visitors class JSONTree < YAMLTree - def visit_Symbol o - append create_scalar o.to_s - end - def visit_NilClass o - scalar = Nodes::Scalar.new( + scalar = create_scalar( 'null', nil, nil, true, false, Nodes::Scalar::PLAIN) append scalar end + def visit_Integer o + append create_scalar(o.to_s, nil, nil, true, false, Nodes::Scalar::PLAIN) + end + + def visit_Float o + return super if o.nan? || o.infinite? + visit_Integer o + end + + def visit_String o + append create_scalar o.to_s + end + alias :visit_Symbol :visit_String + private def create_document doc = super @@ -26,7 +36,7 @@ end def create_scalar value, anchor = nil, tag = nil, plain = false, quoted = true, style = Nodes::Scalar::ANY - super(value, anchor, tag, false, true, style) + super end def create_sequence anchor = nil, tag = nil, implicit = true, style = Nodes::Sequence::FLOW -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/