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.