Data-DynamicValidator
view release on metacpan - search on metacpan
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 distributionview release on metacpan - search on metacpan
( run in 0.461 second using v1.00-cache-2.02-grep-82fe00e-cpan-a086c87fca4 )