NAME

Spreadsheet::Compare::Config - Build Configuration from File or Reference

SYNOPSIS

use Spreadsheet::Compare::Config {
    array   => sub { [] },
    hash    => sub { {} },
    param   => undef,
}, make_attributes => 1, protected => 1;

my $cfg = Spreadsheet::Compare::Config->new(from => 'test.yml');

DESCRIPTION

This modules is used to create attributes for the caller and keeps track of them, so that it can check, if the same attribute is used in another module.

It is also used for taking comparison configuration and expanding it with the defined default values and references. It creates an execution plan consisting of an array with all expanded configurations.

ATTRIBUTES

from

If used directly in the constructor, will call "load" directly with the attributes value. Using it as a setter attribute at a later stage has no effect.

globals

A reference to a hash with the expanded values of the __GLOBAL__ configuration section. Will be available after "load" was called.

plan

A reference to an array of hashes containing the expanded parameters for comparisons.

METHODS

load($source)

Load a configuration. Source can be a reference to a hash with a single comparison definition, a reference to an array with multiple definitions or a filename/filehandle of a YAML configuration file containing either.

next_test

Return the next test configuration (a reference to a hash). Will return undef once if the end is reached and restart at index 0 afterwards.