Data-DynamicValidator

 view release on metacpan or  search on metacpan

lib/Data/DynamicValidator.pm  view on Meta::CPAN

    return Data::DynamicValidator->new(@_);
}

sub new {
    my ($class, $data) = @_;
    my $self = {
        _data   => $data,
        _errors => [],
        _bases  => [],
    };
    return bless $self => $class;
}


sub validate {
    my ($self, %args) = @_;

    my $on      = $args{on     };
    my $should  = $args{should };
    my $because = $args{because};
    my $each    = $args{each   };

lib/Data/DynamicValidator/Error.pm  view on Meta::CPAN

use warnings;

use overload fallback => 1, q/""/ => sub { $_[0]->to_string };

sub new {
    my ($class, $reason, $path) = @_;
    my $self = {
        _reason => $reason,
        _path   => $path,
    };
    bless $self => $class;
}


sub to_string{ $_[0]->{_reason} };


sub reason { $_[0]->{_reason} };



lib/Data/DynamicValidator/Filter.pm  view on Meta::CPAN

    '&{}' => sub {
        my $self = shift;
        return sub { $self->filter(@_) }
    };

sub new {
    my ($class, $condition) = @_;
    my $self = {
        _condition => $condition
    };
    bless $self => $class;
}

sub _prepare {
    my ($self, $data, $context) = @_;
    my %environment;
    my $c = $self->{_condition};
    my $type = ref($data);
    if ($c =~ /\bsize\b/) {
        my $value;
        if ($type eq 'HASH') {

lib/Data/DynamicValidator/Label.pm  view on Meta::CPAN

        return sub { $self->value }
    };

sub new {
    my ($class, $label_name, $path, $data) = @_;
    my $self = {
        _name  => $label_name,
        _path  => $path,
        _data  => $data,
    };
    bless $self => $class;
}


sub to_string {
    my $self = shift;
    $self->{_path}->named_component($self->{_name});
}

sub value {
    my $self = shift;

lib/Data/DynamicValidator/Path.pm  view on Meta::CPAN

use Carp;
use Scalar::Util qw/looks_like_number/;

use overload fallback => 1, q/""/ => sub { $_[0]->to_string };

use constant DEBUG => $ENV{DATA_DYNAMICVALIDATOR_DEBUG} || 0;

sub new {
    my ($class, $path) = @_;
    my $self = { };
    bless $self => $class;
    $self->_build_components($path);
    return $self;
}

sub _build_components {
    my ($self, $path) = @_;

    # handle escaped path components
    $_ = $path;
    # substitute all '/'-symbols to "`" and strip

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.749 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )