Catalyst-View-Template-Lace

 view release on metacpan or  search on metacpan

lib/Catalyst/View/Template/Lace.pm  view on Meta::CPAN

  return $factory;
}

has ctx => (is=>'ro', required=>0);

sub view_components {
  my ($class, $app, $merged_args) = @_;
  return +{
    catalyst => {
      subrequest => Template::Lace::Utils::mk_component {
        require HTTP::Request;
        require HTTP::Message::PSGI;

        my @args = (delete $_{action});
        my $method = ((delete $_{method}) || 'GET');
        push @args, delete($_{parts}) if $_{parts};
        push @args, delete($_{query}) if $_{query};

        my $href = $_{model}->uri_for(@args);
        my $http_request = HTTP::Request->new($method, $href);
        my $psgi_env = HTTP::Message::PSGI::req_to_psgi($http_request);
        my $psgi_response = $_{model}->ctx->psgi_app->($psgi_env);
        my $http_response = HTTP::Message::PSGI::res_from_psgi($psgi_response);
        my $content = $http_response->content;
        if($_{at}) {
          return $_->make_dom($content)->at($_{at});
        }
        return $content;
      }
    },



( run in 0.575 second using v1.01-cache-2.11-cpan-de7293f3b23 )