CatalystX::Declare::Keyword::Application - Declare Catalyst Application Classes


NAME

CatalystX::Declare::Keyword::Application - Declare Catalyst Application Classes


SYNOPSIS

    use CatalystX::Declare;
    application MyApp::Web
           with Static::Simple
           with ConfigLoader {
        $CLASS->config(name => 'My App');
        method debug_timestamp {
            $self->log->debug('Timestamp: ' . time)
                if $self->debug;
        }
            }


DESCRIPTION

This module provides a keyword handler for the application keyword. It is an extension of class in the MooseX::Declare manpage. The role application mechanism behind the with specification is hijacked and the arguments are passed to Catalyst's setup method. This hijacking is proably going away someday since in the future plugins will be actual roles.

You don't have to call the setup method yourself, this will be done by the handler after the body has been run.


SUPERCLASSES

the MooseX::Declare::Syntax::Keyword::Class manpage


METHODS

auto_make_immutable

    Bool Object->auto_make_immutable ()

A modified method that returns 0 to signal to the MooseX::Declare manpage that it should not make this class immutable. Currently, making application classes immutable isn't supported yet, therefore is mutable is currently a no-op. This will likely change as soon as application classes can be made immutable,

context_traits

    List[ClassName] Object->context_traits ()

This extends the remaining context traits with the CatalystX::Declare::Context::AppSetup manpage to manage calls to Catalyst/MyApp->setup.

add_with_option_customizations

    Object->add_with_option_customizations (
        Object   $ctx, 
        Str      $package,
        ArrayRef $plugins,
        HashRef  $options
    )

This will prepare Catalyst/MyApp->setup to be called with the list of plugins that were specified as roles.

add_namespace_customizations

    Object->add_namespace_customizations (Object $ctx, Str $package)

This will prepare Catalyst as a parent and import CLASS into the application's namespace before the other customizations are run.

add_optional_customizations

    Object->add_optional_customizations (Object $ctx, Str $package)

After all customizations have been done, this modifier will push a call to Catalyst/MyApp->setup if this wasn't already done by the plugin specifications.


SEE ALSO

the CatalystX::Declare manpage
class in the MooseX::Declare manpage
the MooseX::Declare::Syntax::Keyword::Class manpage


AUTHOR

See AUTHOR in the CatalystX::Declare manpage for author information.


LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as perl itself.

 CatalystX::Declare::Keyword::Application - Declare Catalyst Application Classes