NAME

Config::YAMLMacros - Include file and string subsitution for YAML configuration files

SYNOPSIS

use Config::YAMLMacros;

my $config = get_config('/some/file');

DESCRIPTION

This module is a wrapper around loading YAML configuration files. It does several things:

expand tabs

Initial tabs on lines are expanded so that YAML doesn't choke on invisible variations in whitespace.

join sections

The YAML file may be split into sections, divided with --- lines. The sections will be merged together to create the final result.

string replacements

You can declare string replacements to use for the rest of the file. For example:

---
REPLACE:
  %FOO%:	BAR
---

You can declare string replacements where the value of the replacement string is evaluated as a perl expression:

---
EVAL_REPLACE:
  %FOO%:	$ENV{HOME}
---

You can turn off the replacements with a NO_REPLACE directive:

---
NO_REPLACE: %FOO%
---

include files

You can include additional files as part of your configuration file. They will be merged in.

---
INCLUDE: filename.yml
---

You can specify that the new file override stuff that has already been seen in the current file:

---
OVERRIDE_FROM: filename.yml
---

=

For the INCLUDE, OVERRIDE_FROM, and NO_REPLACE directives, they can be either lists or a single item:

---
OVERRIDE_FROM:
  - file1.yml
  - file2.yml
NO_REPLACE:
  - %FOO%
  - %BAR%
INCLUDE: justone.yml
---

These new directives need to be in a yaml block all by themselves (delimited by ---).

LICENSE

This package may be used and redistributed under the terms of either the Artistic 2.0 or LGPL 2.1 license.