NAME
    Maypole::Config::YAML - Simple YAML style config for Maypole

SYNOPSIS
    Inline config:

        # MyApp.pm
        package MyApp;

        use strict;
        use base qw(Apache::MVC Maypole::Config::YAML);

        MyApp->load_config;
        MyApp->setup(
            MyApp->config->{dsn},
            MyApp->config->{user},
            MyApp->config->{pass}
        );

        1;
        __DATA__
        --- #YAML:1.0
        dsn: 'dbi:Pg:dbname=myapp'
        user: myuser
        pass: mypass
        uri_base: 'http://127.0.0.1/myapp'
        template_root: '/home/sri/myapp/templates'
        rows_per_page: 10

    Separate config file:

        # MyApp.pm
        package MyApp;

        use strict;
        use base qw(Apache::MVC Maypole::Config::YAML);

        MyApp->load_config('/etc/myapp.yaml');
        MyApp->setup(
            MyApp->config->{dsn},
            MyApp->config->{user},
            MyApp->config->{pass}
        );

        1;

        # /etc/myapp.yaml
        --- #YAML:1.0
        dsn: 'dbi:Pg:dbname=myapp'
        user: myuser
        pass: mypass
        uri_base: 'http://127.0.0.1/myapp'
        template_root: '/home/sri/myapp/templates'
        rows_per_page: 10

    Advanced example:

        # MyApp.pm
        package MyApp;

        use strict;
        use base qw(Apache::MVC Maypole::Config::YAML
                    Maypole::Authentication::Abstract);

        MyApp->load_config('/etc/myapp.yaml');
        MyApp->setup(
            MyApp->config->{dsn},
            MyApp->config->{user},
            MyApp->config->{pass}
        );

        sub authenticate {
            my ($self, $r) = @_;
            $r->public;
            if ($r->{action} eq 'edit') {
                $r->private;
                $r->{template} = 'login' unless $r->{user};
            }
        }

        1;

        # /etc/myapp.yaml
        --- #YAML:1.0
        dsn: 'dbi:Pg:dbname=myapp'
        user: myuser
        pass: mypass
        uri_base: 'http://127.0.0.1/myapp'
        template_root: '/home/sri/myapp/templates'
        rows_per_page: 10
        auth:
          user_class: MyApp::Customer
          session_class: Apache::Session::Postgres
          session_args:
            DataSource: 'dbi:Pg:dbname=myapp'
            UserName: myuser
            Password: mypass
            TableName: session
            Commit: 1

AUTHOR
    Sebastian Riedel, "sri@oook.de"

LICENSE
    This library is free software. You can redistribute it and/or modify it
    under the same terms as perl itself.

