Config-Yak

 view release on metacpan or  search on metacpan

lib/Config/Yak.pm  view on Meta::CPAN

package Config::Yak;
{
  $Config::Yak::VERSION = '0.23';
}
BEGIN {
  $Config::Yak::AUTHORITY = 'cpan:TEX';
}
# ABSTRACT: a tree-based versatile config handler

use 5.010_000;
use mro 'c3';
use feature ':5.10';

use Moose;
use Moose::Util::TypeConstraints;
use namespace::autoclean;

use IO::Handle;
use autodie;

use Config::Any;
use Config::Tiny;
use Hash::Merge;
use Data::Dumper;
use Try::Tiny;
use Data::Structure::Util qw();

subtype 'ArrayRefOfStr',
     as 'ArrayRef[Str]';

coerce 'ArrayRefOfStr',
    from 'Str',
    via { [ $_ ] };

extends 'Data::Tree' => { -version => 0.16 };

has 'locations' => (
    'is'       => 'rw',
    'isa'      => 'ArrayRefOfStr',
    'coerce'   => 1,
    'required' => 1,
);

has 'last_ts' => (
    'is'      => 'rw',
    'isa'     => 'Num',
    'default' => 0,
);

has 'files_read' => (
    'is'    => 'rw',
    'isa'   => 'ArrayRef[Str]',
    'default' => sub { [] },
);

sub config {
    my $self = shift;
    my $arg  = shift;

    if ( defined($arg) ) {
        return $self->data($arg);
    }
    else {
        return $self->data();
    }
} ## end sub config

sub _init_debug {
    my $self = shift;

    if($ENV{'CONFIG_YAK_DEBUG'}) {
        return 1;
    }

    return 0;
}

############################################
# THIS METHOD IS NOT PART OF OUR PUBLIC API!
# Usage      :
# Purpose    :
# Returns    :
# Parameters :
# Throws     : no exceptions
# Comments   : none



( run in 1.080 second using v1.01-cache-2.11-cpan-5837b0d9d2c )