Tripletail

 view release on metacpan or  search on metacpan

doc/Tripletail/Validator.html  view on Meta::CPAN

<dt><a id="Gif"><span class="pod_lang">Gif

</span></a></dt>
<dd>
</dd>
<dt><a id="Jpeg"><span class="pod_lang">Jpeg

</span></a></dt>
<dd>
</dd>
<dt><a id="Png"><span class="pod_lang">Png

</span></a></dt>
<dd>
<p>
<span class="pod_lang">それぞれの形式の画像かチェックする。

</span>
</p>

<p>

doc/Tripletail/Validator.html  view on Meta::CPAN

<li><a href="#MobileEmail">MobileEmail</a></li>
<li><a href="#MultiValues">MultiValues</a></li>
<li><a href="#NAME">NAME</a></li>
<li><a href="#NoValues">NoValues</a></li>
<li><a href="#NotBlank">NotBlank</a></li>
<li><a href="#NotEmpty">NotEmpty</a></li>
<li><a href="#NotWhitespace">NotWhitespace</a></li>
<li><a href="#Or($filter1X7c$filter2X7c$filter3)">Or($filter1|$filter2|$filter3)</a></li>
<li><a href="#Password($spec)">Password($spec)</a></li>
<li><a href="#PcPortable">PcPortable</a></li>
<li><a href="#Png">Png</a></li>
<li><a href="#Portable">Portable</a></li>
<li><a href="#PrintableAscii">PrintableAscii</a></li>
<li><a href="#Real($min,$max)">Real($min,$max)</a></li>
<li><a href="#RegExp($regexp)">RegExp($regexp)</a></li>
<li><a href="#SEE_ALSO">SEE ALSO</a></li>
<li><a href="#SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#SingleValue">SingleValue</a></li>
<li><a href="#SjisLen($min,$max)">SjisLen($min,$max)</a></li>
<li><a href="#TelNumber">TelNumber</a></li>
<li><a href="#TestFilter.pm">TestFilter.pm</a></li>

doc/Tripletail/Value.html  view on Meta::CPAN

<pre class="pod_verbatim"><code>  $bool = $val-&gt;isGif</code></pre>

</dd>
<dt><a id="isJpeg"><span class="pod_lang">isJpeg

</span></a></dt>
<dd>
<pre class="pod_verbatim"><code>  $bool = $val-&gt;isJpeg</code></pre>

</dd>
<dt><a id="isPng"><span class="pod_lang">isPng

</span></a></dt>
<dd>
<pre class="pod_verbatim"><code>  $bool = $val-&gt;isPng</code></pre>

<p>
<span class="pod_lang">それぞれの形式の画像なら1。
そうでなければundefを返す。

</span>
</p>

<p>
<span class="pod_lang">画像として厳密に正しい形式であるかどうかは確認しない。

doc/Tripletail/Value.html  view on Meta::CPAN

<li><a href="#isHttpUrl">isHttpUrl</a></li>
<li><a href="#isHttpsUrl">isHttpsUrl</a></li>
<li><a href="#isInteger($min,$max)">isInteger($min,$max)</a></li>
<li><a href="#isIpAddress">isIpAddress</a></li>
<li><a href="#isJpeg">isJpeg</a></li>
<li><a href="#isKata">isKata</a></li>
<li><a href="#isLen($min,$max)">isLen($min,$max)</a></li>
<li><a href="#isMobileEmail">isMobileEmail</a></li>
<li><a href="#isPassword">isPassword</a></li>
<li><a href="#isPcPortable">isPcPortable</a></li>
<li><a href="#isPng">isPng</a></li>
<li><a href="#isPortable">isPortable</a></li>
<li><a href="#isPrintableAscii">isPrintableAscii</a></li>
<li><a href="#isReal($min,$max)">isReal($min,$max)</a></li>
<li><a href="#isSjisLen($min,$max)">isSjisLen($min,$max)</a></li>
<li><a href="#isTelNumber">isTelNumber</a></li>
<li><a href="#isWhitespace">isWhitespace</a></li>
<li><a href="#isWide">isWide</a></li>
<li><a href="#isZipCode">isZipCode</a></li>
<li><a href="#isXe7Xb3Xbb">isç³»</a></li>
<li><a href="#set">set</a></li>

lib/Tripletail/Validator.pm  view on Meta::CPAN

値が空(存在しないか0文字)なら検証NGとなる。

=item ExistentDay

YYYY-MM-DDで設定された日付が実在するかチェックする。

=item Gif

=item Jpeg

=item Png

それぞれの形式の画像かチェックする。

画像として厳密に正しい形式であるかどうかは確認しない。

=item HttpUrl($mode)

"http://" で始まる文字列かチェックする。

$modeにs を指定した場合、"https://" で始まる文字列も正しい形式とみなす。

lib/Tripletail/Validator/Filter.pm  view on Meta::CPAN

sub doFilter {
	my $this   = shift;
	my $values = shift;
	my $args = shift;

	my @spec = defined($args) ? split(',', $args) : ();
	return grep { !$TL->newValue($_)->isPassword(@spec) } @$values;
}

# -----------------------------------------------------------------------------
# Tripletail::Validator::Filter::Png - Pngフィルタ
# -----------------------------------------------------------------------------
package Tripletail::Validator::Filter::Png;
use Tripletail;

use base qw{Tripletail::Validator::Filter};

sub doFilter {
	my $this   = shift;
	my $values = shift;

	return grep { !$TL->newValue($_)->isPng() } @$values;
}

# -----------------------------------------------------------------------------
# Tripletail::Validator::Filter::PrintableAscii - PrintableAsciiフィルタ
# -----------------------------------------------------------------------------
package Tripletail::Validator::Filter::PrintableAscii;
use Tripletail;

use base qw{Tripletail::Validator::Filter};

lib/Tripletail/Value.pm  view on Meta::CPAN

sub isJpeg {
	my $this = shift;

	if(!defined($this->{value})) {
		return undef;
	}

	$this->{value} =~ /\A\xFF\xD8/ ? 1 : undef;
}

sub isPng {
	my $this = shift;

	if(!defined($this->{value})) {
		return undef;
	}

	$this->{value} =~ /\A\x89PNG\x0D\x0A\x1A\x0A/ ? 1 : undef;
}

sub isHttpUrl {

lib/Tripletail/Value.pm  view on Meta::CPAN

省略可能。

=item isGif

  $bool = $val->isGif

=item isJpeg

  $bool = $val->isJpeg

=item isPng

  $bool = $val->isPng

それぞれの形式の画像なら1。
そうでなければundefを返す。

画像として厳密に正しい形式であるかどうかは確認しない。
( L<file(1)> 程度の判断のみ。)

=item isHttpUrl

  $bool = $val->isHttpUrl

t/validator.t  view on Meta::CPAN

#---Jpeg
  ok($validator->addFilter({
      true  => 'Jpeg',
      false  => 'Jpeg',
  }), 'addFilter');
  $form->set(true => "\xFF\xD8", false => 'Jpeg');
  $error = $validator->check($form);
  is($error->{true}, undef, 'check');
  is($error->{false}, 'Jpeg', 'check');

#---Png
  ok($validator->addFilter({
      true  => 'Png',
      false  => 'Png',
  }), 'addFilter');
  $form->set(true => "\x89PNG\x0D\x0A\x1A\x0A", false => 'Png');
  $error = $validator->check($form);
  is($error->{true}, undef, 'check');
  is($error->{false}, 'Png', 'check');

#---HttpUrl
  ok($validator->addFilter({
      true  => 'HttpUrl',
      true2  => 'HttpUrl(s)',
      false  => 'HttpUrl',
  }), 'addFilter');
  $form->set(true => 'http://tripletail.jp/', true2 => 'https://tripletail.jp/', false => 'https://tripletail.jp/');
  $error = $validator->check($form);
  is($error->{true}, undef, 'check');

t/value.t  view on Meta::CPAN

ok($v->set('2010-08-12 000000')->isExistentDateTime(time_delim => ''), 'isExistentDateTime delim_optional');
ok(! $v->set('2010-08-12 00:00:00')->isExistentDateTime(time_delim => ''), 'isExistentDateTime delim_optional');
ok($v->set('2010-08-31 00:00:00')->isExistentDateTime(date_delim_optional => '-'), 'isExistentDateTime delim_optional');
ok($v->set('20100831 00:00:00')->isExistentDateTime( date_delim_optional => '-'), 'isExistentDateTime delim_optional');
ok($v->set('20100831 00:00:00')->isExistentDateTime(date_delim => ''), 'isExistentDateTime delim_optional');
ok(! $v->set('2010-08-31 00:00:00')->isExistentDateTime(date_delim => ''), 'isExistentDateTime delim_optional');
ok($v->set('2010-08-31 00:00:00')->isExistentDateTime(date_delim_optional => '-'), 'isExistentDateTime delim_optional');

ok($v->set('GIF89a-----')->isGif, 'isGif');
ok($v->set("\xFF\xD8-----")->isJpeg, 'isJpeg');
ok($v->set("\x89PNG\x0D\x0A\x1A\x0A-----")->isPng, 'isPng');

ok($v->set("https://foo/")->isHttpsUrl, 'isHttpsUrl');
ok($v->set("http://foo/")->isHttpUrl, 'isHttpUrl');

$v->set('テスト');
ok($v->isLen(0, 9), 'isLen');
ok(! $v->isLen(0, 8), 'isLen');
ok($v->isSjisLen(0, 6), 'isSjisLen');
ok(! $v->isSjisLen(0, 5), 'isSjisLen');
ok($v->isCharLen(0, 3), 'isCharLen');



( run in 0.567 second using v1.01-cache-2.11-cpan-0a6323c29d9 )