[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]