Provided by: libcatalystx-injectcomponent-perl_0.025-2_all 
      
    
NAME
       CatalystX::InjectComponent - Inject components into your Catalyst application
VERSION
       version 0.025
SYNOPSIS
           package My::App;
           use Catalyst::Runtime '5.80';
           use Moose;
           BEGIN { extends qw/Catalyst/ }
           ...
           after 'setup_components' => sub {
               my $class = shift;
               CatalystX::InjectComponent->inject( into => $class, component => 'MyModel' );
               if ( $class->config->{ ... ) {
                   CatalystX::InjectComponent->inject( into => $class, component => 'MyRootV2', as => 'Controller::Root' );
               }
               else {
                   CatalystX::InjectComponent->inject( into => $class, component => 'MyRootV1', as => 'Root' ); # Controller:: will be automatically prefixed
               }
           };
DESCRIPTION
       CatalystX::InjectComponent will inject Controller, Model, and View components into your Catalyst
       application at setup (run)time. It does this by creating a new package on-the-fly, having that package
       extend the given component, and then having Catalyst setup the new component (via "->setup_component")
So, how do I use this thing?
       You should inject your components when appropriate, typically after "setup_compenents" runs
       If you're using the Moose version of Catalyst, then you can use the following technique:
           use Moose;
           BEGIN { extends qw/Catalyst/ }
           after 'setup_components' => sub {
               my $class = shift;
               CatalystX::InjectComponent->inject( into => $class, ... )
           };
METHODS
   CatalystX::InjectComponent->inject( ... )
           into        The Catalyst package to inject into (e.g. My::App)
           component   The component package to inject
           as          An optional moniker to use as the package name for the derived component
       For example:
           ->inject( into => My::App, component => Other::App::Controller::Apple )
               The above will create 'My::App::Controller::Other::App::Controller::Apple'
           ->inject( into => My::App, component => Other::App::Controller::Apple, as => Apple )
               The above will create 'My::App::Controller::Apple'
ACKNOWLEDGEMENTS
       Inspired by Catalyst::Plugin::AutoCRUD
AUTHOR
       Robert Krimen <robertkrimen@gmail.com>
COPYRIGHT AND LICENSE
       This software is copyright (c) 2012 by Robert Krimen.
       This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5
       programming language system itself.
perl v5.34.0                                       2022-06-09                    CatalystX::InjectComponent(3pm)