[Jifty-commit] r7042 - jifty/branches/webservices-in-td/lib/Jifty/View/Declare

Jifty commits jifty-commit at lists.jifty.org
Sat May 16 23:49:15 EDT 2009


Author: ruz
Date: Sat May 16 23:49:05 2009
New Revision: 7042

Modified:
   jifty/branches/webservices-in-td/lib/Jifty/View/Declare/CoreTemplates.pm

Log:
* delete old copies of core templates

Modified: jifty/branches/webservices-in-td/lib/Jifty/View/Declare/CoreTemplates.pm
==============================================================================
--- jifty/branches/webservices-in-td/lib/Jifty/View/Declare/CoreTemplates.pm	(original)
+++ jifty/branches/webservices-in-td/lib/Jifty/View/Declare/CoreTemplates.pm	Sat May 16 23:49:05 2009
@@ -5,8 +5,6 @@
 
 use Jifty::View::Declare -base;
 
-use Scalar::Defer;
-
 =head1 NAME 
 
 Jifty::View::Declare::CoreTemplates - Templates Jifty can't function without
@@ -200,152 +198,19 @@
     Jifty->web->out($output);
 };
 
-template '__jifty/webservices/xml' => sub {
-    my $output = "";
-    my $writer = XML::Writer->new(
-        OUTPUT => \$output,
-        UNSAFE => 1
-    );
-    $writer->xmlDecl( "UTF-8", "yes" );
-    $writer->startTag("response");
-    for my $f ( Jifty->web->request->fragments ) {
-
-        # Set up the region stack
-        local Jifty->web->{'region_stack'} = [];
-        my @regions;
-        do {
-            push @regions, $f;
-        } while ( $f = $f->parent );
-
-        for $f ( reverse @regions ) {
-            my $new =
-              Jifty->web->get_region( join '-',
-                grep { $_ } Jifty->web->qualified_region, $f->name );
-
-            # Arguments can be complex mapped hash values.  Get their
-            # real values by mapping.
-            my %defaults = %{ $f->arguments || {} };
-            for ( keys %defaults ) {
-                my ( $key, $value ) = Jifty::Request::Mapper->map(
-                    destination => $_,
-                    source      => $defaults{$_}
-                );
-                delete $defaults{$_};
-                $defaults{$key} = $value;
-            }
-
-            $new ||= Jifty::Web::PageRegion->new(
-                name           => $f->name,
-                path           => $f->path,
-                region_wrapper => $f->wrapper,
-                parent         => Jifty->web->current_region,
-                defaults       => \%defaults,
-            );
-            $new->enter;
-        }
-
-        # Stuff the rendered region into the XML
-        $writer->startTag( "fragment",
-            id => Jifty->web->current_region->qualified_name );
-        my %args = %{ Jifty->web->current_region->arguments };
-        $writer->dataElement( "argument", $args{$_}, name => $_ )
-          for sort keys %args;
-        $writer->cdataElement( "content",
-            Jifty->web->current_region->as_string );
-        $writer->endTag();
-
-        Jifty->web->current_region->exit while Jifty->web->current_region;
-    }
-
-    my %results = Jifty->web->response->results;
-    for ( keys %results ) {
-        $writer->startTag(
-            "result",
-            moniker => $_,
-            class   => $results{$_}->action_class
-        );
-        $writer->dataElement( "success", $results{$_}->success );
-
-        $writer->dataElement( "message", $results{$_}->message )
-          if $results{$_}->message;
-        $writer->dataElement( "error", $results{$_}->error )
-          if $results{$_}->error;
-
-        my %warnings = $results{$_}->field_warnings;
-        my %errors   = $results{$_}->field_errors;
-        my %fields;
-        $fields{$_}++ for keys(%warnings), keys(%errors);
-        for ( sort keys %fields ) {
-            next unless $warnings{$_} or $errors{$_};
-            $writer->startTag( "field", name => $_ );
-            $writer->dataElement( "warning", $warnings{$_} )
-              if $warnings{$_};
-            $writer->dataElement( "error", $errors{$_} )
-              if $errors{$_};
-            $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)
-        use Scalar::Util qw(blessed);
-        my $content = $results{$_}->content;
-
-
-        $content = _stripkids($content);
-        use XML::Simple;
-        $writer->raw(
-            XML::Simple::XMLout(
-                $content,
-                NoAttr   => 1,
-                RootName => "content",
-                NoIndent => 1
-            )
-        ) if keys %{$content};
-
-        $writer->endTag();
-    }
-
-    $writer->endTag();
-    Jifty->handler->apache->content_type('text/xml; charset=UTF-8');
-
-    # For some reason, this line is needed, lest we end up outputting ISO-8859-1 text
-    utf8::decode($output);
+=cut
 
-    outs_raw($output);
+template '__jifty/webservices/xml' => sub {
+    Jifty->web->services->xml;
+    return;
+};
+template '__jifty/webservices/json' => sub {
+    Jifty->web->services->json;
+    return;
 };
-
-        sub _stripkids {
-            my $top = shift;
-            if ( not ref $top ) { return $top }
-            elsif (
-                blessed($top)
-                and (  $top->isa("Jifty::DBI::Record")
-                    or $top->isa("Jifty::DBI::Collection") )
-              )
-            {
-                return undef;
-            }
-            elsif ( ref $top eq 'HASH' ) {
-                foreach my $item ( keys %$top ) {
-                    $top->{$item} = _stripkids( $top->{$item} );
-                }
-            }
-            elsif ( ref $top eq 'ARRAY' ) {
-                for ( 0 .. $#{$top} ) {
-                    $top->[$_] = _stripkids( $top->[$_] );
-                }
-            }
-            return $top;
-        }
-
-
 template '__jifty/webservices/yaml' => sub {
-    Jifty->handler->apache->content_type("text/x-yaml");
-    outs( Jifty::YAML::Dump( { Jifty->web->response->results } ) );
+    Jifty->web->services->yaml;
+    return;
 };
 
-=cut
-
 1;


More information about the Jifty-commit mailing list