[Dancer-users] Sharing config files

Stephen Fenwick-Paul stephen at activeg.org
Tue Nov 15 19:14:07 CET 2011


Ta, for the pointers. This does it, if anyone  else has similar needs

In your conf.yml

global_config : "../shared_conf/config.yml" # with relation to appdir

and some code to load it:


sub includeGlobalConfig {
  my $self = shift;

  my ($appdir) = setting('appdir');

  # For some reason Mason2 does not like the relative path
  $appdir =~ s|/bin/..||;

  my ($gconfig_file) = $appdir . "/" . config->{global_config};

  die "Unable to find global config '$gconfig_file'" unless  -f
$gconfig_file;

  my ($gconfig) = YAML::LoadFile($gconfig_file);

  # Merge with default
  map { config->{$_} = $gconfig->{$_} } keys %{$gconfig};

  # If your using Mason2
  config->{engines}{mason2}->{data_dir} = $appdir . "/data";
  config->{engines}{mason2}->{comp_root} = $appdir . "/views";
  config->{engines}{mason2}->{autoextend_request_path} = 0;
  # Mason2 bug - when not running from server (i.e. test), it looses appdir
for views
  config->{views} = $appdir . "/views";
};


And call it in your app.pm - something like:

package MyApp;

use Dancer ':syntax';

MyApp::Config->new()->includeGlobalConfig();

get '/index' => {

......

};











On 15 November 2011 10:45, Stephen Fenwick-Paul <stephen at activeg.org> wrote:

> Thanks, that's the way I will go.
>
>
> On 15 November 2011 10:44, David Precious <davidp at preshweb.co.uk> wrote:
>
>> On Tuesday 15 November 2011 10:42:21 David Precious wrote:
>> > In the meantime, you could store your database settings in a separate
>> YAML
>> > file, then in your apps, load that and put it into the app's config with
>> > something a little like:
>> >
>> >     my $db_conf = YAML::LoadFile('database.yml');
>> >     config->{plugins}{Database} = $db_conf;
>> >
>> > That should work :)
>>
>> And of course that could be even more concise using the from_yaml()
>> keyword
>> provided by Dancer, e.g.:
>>
>>    config->{plugins}{Database} = from_yaml('database.yml');
>>
>>
>> --
>> David Precious  ("bigpresh")
>> http://www.preshweb.co.uk/
>>
>>   "Programming is like sex. One mistake and you have to support
>>   it for the rest of your life". (Michael Sinz)
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.backup-manager.org/pipermail/dancer-users/attachments/20111115/d2e1ebb3/attachment.htm>


More information about the Dancer-users mailing list