[Jifty-commit] r1149 - in jifty/trunk: share/web/templates/__jifty/webservices

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Jun 2 18:34:48 EDT 2006


Author: alexmv
Date: Fri Jun  2 18:34:48 2006
New Revision: 1149

Modified:
   jifty/trunk/   (props changed)
   jifty/trunk/share/web/templates/__jifty/webservices/xml

Log:
 r13417 at zoq-fot-pik:  chmrr | 2006-06-02 18:34:37 -0400
  * XML::Simple doesn't deal with circular data structures, like
 Jifty::DBI objects


Modified: jifty/trunk/share/web/templates/__jifty/webservices/xml
==============================================================================
--- jifty/trunk/share/web/templates/__jifty/webservices/xml	(original)
+++ jifty/trunk/share/web/templates/__jifty/webservices/xml	Fri Jun  2 18:34:48 2006
@@ -60,9 +60,20 @@
         $writer->endTag();
     }
 
+    # XXX TODO: Hack because we don't have a good way to serialize
+    # Jifty::DBI::Record's yet, which are technically circular data
+    # structures at some level (current_user of a
+    # current_user->user_object is itself)
+    my $content = $results{$_}->content;
+    ref $content->{$_}
+        and ( $content->{$_}->isa("Jifty::DBI::Record")
+           or $content->{$_}->isa("Jifty::DBI::Collection") )
+        and delete $content->{$_}
+        for keys %{$content};
+
     use XML::Simple;
-    $writer->raw(XML::Simple::XMLout($results{$_}->content, NoAttr => 1, RootName => "content", NoIndent => 1))
-      if keys %{$results{$_}->content};
+    $writer->raw(XML::Simple::XMLout($content, NoAttr => 1, RootName => "content", NoIndent => 1))
+      if keys %{$content};
 
     $writer->endTag();
 }


More information about the Jifty-commit mailing list