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.

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

      package MyConfig;
      use Config::ENV 'FOO_ENV', exports => '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.