Cmd-Dwarf

 view release on metacpan or  search on metacpan

examples/helloworld/app/lib/Dwarf/Plugin/MouseX/Types/Common.pm  view on Meta::CPAN

}

sub _datetime {
	my $str = shift;
	return 0 unless $str =~ /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/;
	my @a = split / /, $str;
	return _date(split /-/, $a[0]) && _time(split /:/, $a[1]);
}

sub _date {
	my ($y, $m, $d) = @_;

	return 0 if ( !$y or !$m or !$d );

	if ($d > 31 or $d < 1 or $m > 12 or $m < 1 or $y == 0) {
		return 0;
	}
	if ($d > 30 and ($m == 4 or $m == 6 or $m == 9 or $m == 11)) {
		return 0;
	}
	if ($d > 29 and $m == 2) {
		return 0;
	}
	if ($m == 2 and $d > 28 and !($y % 4 == 0 and ($y % 100 != 0 or $y % 400 == 0))){
		return 0;
	}
	return 1;
}

sub _time {
	my ($h, $m, $s) = @_;

	return 0 if (!defined($h) or !defined($m));
	return 0 if ("$h" eq "" or "$m" eq "");
	$s ||= 0; # optional

	if ( $h > 23 or $h < 0 or $m > 59 or $m < 0 or $s > 59 or $s < 0 ) {
		return 0;
	}

	return 1;
}

sub _json {
	my $value = $_;
	return 1 unless defined $value;
	my $data = eval { decode_json encode_utf8 $value };
	if ($@) {
		warn $@;
		warn $value;
		return 0;
	}
	return 1;
}

sub _base64_type {
	my ($value, $expected) = @_;

	my $filetype = '';

	my $decoded = decode_base64($value);
	my $type = image_type(\$decoded);

	if (my $error = $type->{error}) {
		return 0;
	}

	$filetype = lc $type->{file_type};
	return $filetype =~ /^$expected$/i;
};

sub _delsp {
	my $x = $_;
	$x =~ s/\s//g;
	return $x;
}

1;



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