App-Basis

 view release on metacpan or  search on metacpan

lib/App/Basis/Config.pm  view on Meta::CPAN

# ABSTRACT: Manage config YAML files in a simple manner



package App::Basis::Config;
$App::Basis::Config::VERSION = '1.2';
use 5.010;
use warnings;
use strict;
use Moo;
use YAML::XS qw( Load Dump);
use Path::Tiny;
use Try::Tiny;
use App::Basis;



# ----------------------------------------------------------------------------
# the raw config data hash
has raw => (
    is   => 'ro',
    lazy => 1,

    # builder  => '_load',
    init_arg => undef,        # dont allow setting in constructor
    default  => sub { {} },
    writer   => '_set_raw'
);

has filename => (
    is       => 'ro',
    required => 0,
    writer   => '_set_filename'
);

has nostore => (
    is      => 'ro',
    default => sub {0}
);

has die_on_error => (
    is      => 'ro',
    default => sub {0}
);


has has_data => (
    is       => 'ro',
    default  => sub {0},
    init_arg => undef,            # dont allow setting in constructor
    writer   => '_set_has_data'
);


has changed => (
    is       => 'rw',
    default  => sub {0},
    init_arg => undef,     # dont allow setting in constructor
                           # writer   => '_set_changed'
);


has error => (
    is       => 'ro',
    default  => sub {undef},
    init_arg => undef,         # dont allow setting in constructor
    writer   => '_set_error'
);

# ----------------------------------------------------------------------------


sub BUILD {



( run in 1.276 second using v1.01-cache-2.11-cpan-39bf76dae61 )