Config::Tree::Var - Read configuration tree from Perl data structure


Config-Tree documentation Contained in the Config-Tree distribution.

Index


Code Index:

NAME

Top

Config::Tree::Var - Read configuration tree from Perl data structure

SYNOPSIS

Top

 use Config::Tree::Var;

 my $tree = {
    foo => {
        bar => 2,
        baz => 3,
    }
 };

 my $conf = Config::Tree::Var->new(
     tree => $var,
     # schema => ...,
     # when_invalid => ...
     # include_path_re => qr/.../,
     # exclude_path_re => qr/.../,
     ro => 0,
 );
 my $val = $conf->get('/foo/bar'); # 2
 $conf->cd('/foo');
 $conf->set('bar', 10); # same as set('/foo/bar', 10);

DESCRIPTION

Top

ATTRIBUTES

Top

METHODS

Top

new(%args)

Construct a new Config::Tree::Var object. Arguments.

set($path, $val)

Set config variable in the tree.

save()

Does nothing. set() will already modify the Perl data structure.

SEE ALSO

Top

Data::Schema, Config::Tree::Base

AUTHOR

Top

Steven Haryanto, <stevenharyanto at gmail.com>

COPYRIGHT & LICENSE

Top


Config-Tree documentation Contained in the Config-Tree distribution.
package Config::Tree::Var;

use Moose;
extends 'Config::Tree::Base';

has _loaded => (is => 'rw', default => 0);
has _mtime => (is => 'rw', default => 0);
has tree => (is => 'rw', default => 0);

sub BUILD {
    my ($self) = @_;
    die "tree must be specified" unless defined($self->tree);
    $self->name("var") unless $self->name;
}

sub _get_tree {
    my ($self) = @_;
    unless ($self->_loaded) {
        die "tree must be hashref" unless ref($self->tree) eq 'HASH';
        $self->_loaded(1);
        $self->_mtime(time);
    }
    ($self->tree, $self->_mtime);
}

sub _format_validation_error {
    my ($self, $res) = @_;
    sprintf("%sconfig has %d error(s): `%s`",
            ($self->modified ? "modified " : ""),
            scalar(@{ $res->{errors} }),
            join(", ", @{ $res->{errors} }));
}

sub _save {
    my ($self) = @_;
    1;
}

__PACKAGE__->meta->make_immutable;
1;