The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Crane::Config - Configuration manager

SYNOPSIS

  use Crane::Config;
  
  my $filename = config->{'log'}->{'filename'};

DESCRIPTION

Configuration manager which operates with YAML configurations. Settings are available as a hash reference returned by "config" function.

You can specify default configuration and filename by passing it to "config" function when first call (see description below).

OPTIONS

--config=path/to/config

If option is available will use as path to configuration file.

EXPORTED FUNCTIONS

config ($config, @filenames)

Returns link to current configuration.

When first call you can specify default configuration $config and/or list of config file names @filenames.

FUNCTIONS

merge_config ($original, $config)

Merge two configs ($config to $original).

read_config ($filename)

Reads confugration from file named $filename.

write_config ($config, $filename)

Saves configuration $config to file named $filename.

load_config ($config, @filenames)

Load configurations from files named @filenames and merges them to configuration $config and default configuration.

ERRORS

Incorrect syntax in '%s': %s

Where %s is file name and %s is error message.

Invalid YAML configuration file.

Unable to read config '%s': %s

Where %s is file name and %s is error message.

Fires when unable to open configuration for read.

Unable to write config '%s': %s

Where %s is file name and %s is error message.

Fires when unable to open configuration for write.

YAML error while writing '%s': %s

Where %s is file name and %s is error message.

Configuration should be a hash reference

Fires when function required hash reference as a configuration.

No filename given

Fires when function required name of file but it is undefined.

EXAMPLES

Configuration file

  domain: "production"
  
  log:
      level: 0
      filename: "/var/log/example/messages.log"
      error_filename: "/var/log/example/errors.log"
  
  servers:
    - "127.0.0.1:3001"
    - "127.0.0.1:3002"

Which results to hash reference:

  {
      'domain' => 'production',
      
      'log' => {
          'level'          => '0',
          
          'filename'       => '/var/log/example/messages.log',
          'error_filename' => '/var/log/example/errors.log',
      },
      
      'servers' => [
          '127.0.0.1:3001',
          '127.0.0.1:3002',
      ],
  }

ENVIRONMENT

BASE_PATH

See Crane::Base.

FILES

<BASE_PATH>/etc/default.conf

Default configuration file.

BUGS

Please report any bugs or feature requests to https://github.com/temoon/crane/issues. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

AUTHOR

Tema Novikov, <novikov.tema@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2013-2014 Tema Novikov.

This library is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0. For details, see the full text of the license in the file LICENSE.

SEE ALSO

  • Github

    https://github.com/temoon/crane