Skip to content
No description or website provided.
Perl Perl6
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
inc/Test
lib/Config
t
xt
.gitignore
.travis.yml
Build.PL
Changes
LICENSE
META.json
README.md
cpanfile

README.md

NAME

Config::ENV - Various config determined by %ENV

SYNOPSIS

package MyConfig;

use Config::ENV 'PLACK_ENV'; # use $ENV{PLACK_ENV} to determine config

common +{
  name => 'foobar',
};

config development => +{
  dsn_user => 'dbi:mysql:dbname=user;host=localhost',
};

config test => +{
  dsn_user => 'dbi:mysql:dbname=user;host=localhost',
};

config production => +{
  dsn_user => 'dbi:mysql:dbname=user;host=127.0.0.254',
};

config production_bot => +{
  parent('production'),
  bot => 1,
};

# Use it

use MyConfig;
MyConfig->param('dsn_user'); #=> ...

DESCRIPTION

Config::ENV is for switching various configurations by environment variable.

CONFIG DEFINITION

use this module in your config package:

package MyConfig;
use Config::ENV 'FOO_ENV';

common +{
  name => 'foobar',
};

config development => +{};
config production  => +{};

1;
  • common($hash)

    Define common config. This $hash is merged with specific environment config.

  • config($env, $hash);

    Define environment config. This $hash is just enabled in $env environment.

  • parent($env);

    Expand $env configuration to inherit it.

  • load($filename);

    `do $filename` and expand it. This can be used following:

    # MyConfig.pm
    common +{
      API_KEY => 'Set in config.pl',
      API_SECRET => 'Set in config.pl',
      load('config.pl),
    };
    
    # config.pl
    +{
      API_KEY => 'XFATEAFAFASG',
      API_SECRET => 'ced3a7927fcf22cba72c2559326be2b8e3f14a0f',
    }
    

EXPORT

You can specify default export name in config class. If you specify 'export' option as following:

package MyConfig;
use Config::ENV 'FOO_ENV', export => 'config';

...;

and use it with 'config' function.

package Foobar;
use MyConfig; # exports 'config' function

config->param('...');

METHODS

  • config->param($name)

    Returns config variable named $name.

  • $guard = config->local(%hash)

    This is for scope limited config. You can use this when you use other values in temporary. Returns guard object.

    is config->param('name'), 'original value';
    {
      my $guard = config->local(name => 'localized');
      is config->param('name'), 'localized';
    };
    is config->param('name'), 'original value';
    
  • config->env

    Returns current environment name.

  • config->current

    Returns current configuration as HashRef.

AUTHOR

cho45 cho45@lowreal.net

SEE ALSO

LICENSE

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

Something went wrong with that request. Please try again.