-
-
11 Jun 2019 08:20:51 UTC
- Distribution: Config-ENV
- Module version: 0.18
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues
- Testers (396 / 36 / 0)
- Kwalitee
Bus factor: 1- 98.67% Coverage
- License: perl_5
- Activity
24 month- Tools
- Download (18.19KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
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.
Module Install Instructions
To install Config::ENV, copy and paste the appropriate command in to your terminal.
cpanm Config::ENV
perl -MCPAN -e shell install Config::ENV
For more information on module installation, please visit the detailed CPAN module installation guide.