ruby-changes:15869
From: tenderlove <ko1@a...>
Date: Sun, 16 May 2010 11:33:28 +0900 (JST)
Subject: [ruby-changes:15869] Ruby:r27806 (trunk): * ext/psych/lib/psych/visitors/json_tree.rb: using factory methods for
tenderlove 2010-05-16 11:33:05 +0900 (Sun, 16 May 2010) New Revision: 27806 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27806 Log: * 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: trunk/ext/psych/lib/psych/visitors/json_tree.rb trunk/ext/psych/lib/psych/visitors/yaml_tree.rb Index: ext/psych/lib/psych/visitors/yaml_tree.rb =================================================================== --- ext/psych/lib/psych/visitors/yaml_tree.rb (revision 27805) +++ ext/psych/lib/psych/visitors/yaml_tree.rb (revision 27806) @@ -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: ext/psych/lib/psych/visitors/json_tree.rb =================================================================== --- ext/psych/lib/psych/visitors/json_tree.rb (revision 27805) +++ ext/psych/lib/psych/visitors/json_tree.rb (revision 27806) @@ -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/