Ambrosia
view release on metacpan or search on metacpan
lib/Ambrosia/Utils/Util.pm view on Meta::CPAN
package Ambrosia::Utils::Util;
use strict;
use warnings;
use Carp;
use Ambrosia::error::Exceptions;
use base 'Exporter';
our @EXPORT_OK = qw/array_to_str escape_html unescape_html check_file_name pare_list pare/;
our $VERSION = 0.010;
sub array_to_str
{
return join '_', @_ == 1 && ref $_[0] ? @{$_[0]} : (@_);
}
sub escape_html
{
for ( shift )
{
return $_ unless $_;
s/&/&/sg;
s/</</sg;
s/>/>/sg;
s/"/"/sg;
return $_;
}
}
sub unescape_html
{
#my $latin = defined $self->{'.charset'}
# ? $self->{'.charset'} =~ /^(ISO-8859-1|WINDOWS-125[12]|KOI8-?R)$/i
# : 1;
for ( shift )
{
s/&/&/sg;
s/</</sg;
s/>/>/sg;
s/"/"/sg;
lib/Ambrosia/Validator/Constraint.pm view on Meta::CPAN
package Ambrosia::Validator::Constraint;
use strict;
use warnings;
use Ambrosia::Utils::Util qw(escape_html);
use Ambrosia::Meta;
class sealed
{
public => [qw/name errorMessage/],
private => [qw/constraint/],
};
our $VERSION = 0.010;
lib/Ambrosia/Validator/Constraint.pm view on Meta::CPAN
my $prev = $self->constraint;
$self->constraint = sub {
my ($v, $pEM) = $prev->(shift);
return ($v, $pEM) unless $v;
if ($p{regexp} && $v !~ /$p{regexp}/)
{
push @$pEM, $badFormat_em;
}
return (escape_html($v), $pEM);
};
return $self;
}
sub Email
{
my $self = shift;
my %p = @_;
$p{regexp} = qr/[a-z0-9-_]+@(?:[a-z0-9-_]+\.)+[a-z]{2,4}/s;
lib/Ambrosia/Validator/Constraint.pm view on Meta::CPAN
my $prev = $self->constraint;
$self->constraint = sub {
my ($v, $pEM) = $prev->(shift);
my $lVal = length $v;
if ( (defined $p{min} && $lVal < $p{min}) || (defined $p{max} && $lVal > $p{max}) )
{
push @$pEM, $notNumber_rv;
}
return (escape_html($v), $pEM);
};
return $self;
}
sub Date
{
my $self = shift;
my %p = @_;
( run in 0.668 second using v1.01-cache-2.11-cpan-c21f80fb71c )