X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst.pm;h=46f6baec0f5cb14035557f398dab5a5e960b517c;hb=81557adfb9a2cc7059fceb7782105ca5121d7de5;hp=42cbe8f4a9e4a2027fd40057f8755149efdde502;hpb=22247e54ccd3fbdaf286e77304b96e61ecc43a0f;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index 42cbe8f..46f6bae 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -20,6 +20,7 @@ use Scalar::Util qw/weaken/; use Tree::Simple qw/use_weak_refs/; use Tree::Simple::Visitor::FindByUID; use attributes; +use YAML (); __PACKAGE__->mk_accessors( qw/counter request response state action stack namespace/ @@ -443,6 +444,12 @@ Returns or takes a hashref containing the application's configuration. __PACKAGE__->config({ db => 'dsn:SQLite:foo.db' }); +You can also use a L config file like myapp.yml in your +applications home directory. + + --- + db: dsn:SQLite:foo.db + =head2 $c->debug Overload to enable debug messages (same as -Debug option). @@ -571,11 +578,21 @@ sub setup { } } + $class->setup_home( delete $flags->{home} ); + + # YAML config support + my $confpath = $class->config->{file} + || $class->path_to( + ( Catalyst::Utils::appprefix( ref $class || $class ) . '.yml' ) ); + my $conf = {}; + $conf = YAML::LoadFile($confpath) if -f $confpath; + my $oldconf = $class->config; + $class->config( { %$oldconf, %$conf } ); + $class->setup_log( delete $flags->{log} ); $class->setup_plugins( delete $flags->{plugins} ); $class->setup_dispatcher( delete $flags->{dispatcher} ); $class->setup_engine( delete $flags->{engine} ); - $class->setup_home( delete $flags->{home} ); for my $flag ( sort keys %{$flags} ) {