Fix plugin links in POD
[catagits/Catalyst-View-Component-SubInclude.git] / lib / Catalyst / View / Component / SubInclude.pm
index 5d12012..f77345f 100644 (file)
@@ -15,11 +15,11 @@ Catalyst::View::Component::SubInclude - Use subincludes in your Catalyst views
 
 =head1 VERSION
 
-Version 0.09
+Version 0.11
 
 =cut
 
-our $VERSION = '0.09';
+our $VERSION = '0.11';
 $VERSION = eval $VERSION;
 
 =head1 SYNOPSIS
@@ -49,11 +49,7 @@ in your page.
 
 It's built in an extensible way so that you're free to use sub-requests,
 Varnish ESI (L<http://www.catalystframework.org/calendar/2008/17>) or any other
-sub-include plugin you might want to implement. An LWP plugin seems useful and
-might be developed in the future. If you need to address a resource by it's
-public path (i.e. the path part trailing C<http://example.com/myapp> then you
-will need to use L<Catalyst::Plugin::SubRequest> directly, and not this
-component.
+sub-include plugin you might want to implement.
 
 =head1 STASH FUNCTIONS
 
@@ -76,20 +72,36 @@ calls this function using the default plugin as the first parameter.
 
 =head1 SUBINCLUDE PLUGINS
 
-The module comes with two subinclude plugins:
-L<SubRequest|Catalyst::Plugin::View::Component::SubRequest>,
-L<Visit|Catalyst::Plugin::View::Component::Visit> and
-L<ESI|Catalyst::Plugin::View::Component::ESI>.
+The module comes with several subinclude plugins:
+L<SubRequest|Catalyst::View::Component::SubInclude::SubRequest>,
+L<HTTP|Catalyst::View::Component::SubInclude::HTTP>,
+L<SSI|Catalyst::View::Component::SubInclude::SSI>,
+L<Visit|Catalyst::View::Component::SubInclude::Visit> and
+L<ESI|Catalyst::View::Component::SubInclude::ESI>.
 
 By default, the C<SubRequest> plugin will be used. This can be changed in the
 view's configuration options (either in the config file or in the view module
 itself).
 
-Configuration file example:
+    __PACKAGE__->config(
+        subinclude_plugin => 'ESI',
+        subinclude => {
+            'SubRequest' => {
+                keep_stash => 1,
+            },
+            'HTTP::POST' => {
+                class => 'HTTP',
+                http_method => 'POST',
+                ua_timeout => '10',
+                uri_map => {
+                    '/foo/' => 'http://www.foo.com/',
+                },
+            },
+        },
+    );
 
-  <View::TT>
-      subinclude_plugin   ESI
-  </View::TT>
+You can change each plugins' configuration through the keys in the 'subinclude'
+config key (example above)
 
 =head2 C<set_subinclude_plugin( $plugin )>
 
@@ -168,8 +180,6 @@ has _subinclude_plugin_class_instance_cache => (
 sub _subinclude_plugin_class_instance {
     my ($self, $plugin) = @_;
 
-    my $class = $plugin =~ /::/ ? $plugin : __PACKAGE__ . '::' . $plugin;
-
     my $cache = $self->_subinclude_plugin_class_instance_cache;
     return $cache->{$plugin} if exists $cache->{$plugin};
 
@@ -177,10 +187,16 @@ sub _subinclude_plugin_class_instance {
         $self->subinclude->{ALL}||{},
         $self->subinclude->{$plugin}||{}
     );
+    my $short_class = $plugin_config->{'class'} ?
+        delete $plugin_config->{'class'}
+        : $plugin;
+    my $class = $short_class =~ /::/ ?
+        $short_class
+        : __PACKAGE__ . '::' . $short_class;
 
     Class::MOP::load_class($class);
 
-    return $cache->{$plugin} = $class->new($plugin_config);
+    return $cache->{$class} = $class->new($plugin_config);
 }
 
 =head1 SEE ALSO
@@ -205,6 +221,10 @@ Nilson Santos Figueiredo Junior, C<< <nilsonsfj at cpan.org> >>
 
 Tomas Doran (t0m) C<< <bobtfish@bobtfish.net >>.
 
+Vladimir Timofeev, C<< <vovkasm at gmail.com> >>.
+
+Wallace Reis (wreis) C<< <wreis@cpan.org> >>.
+
 =head1 SPONSORSHIP
 
 Development sponsored by Ionzero LLC L<http://www.ionzero.com/>.