Array-Stream-Transactional-Matcher

 view release on metacpan or  search on metacpan

lib/Array/Stream/Transactional/Matcher/Value.pm  view on Meta::CPAN

  my ($self, $stream) = @_;
  my $compare = $stream->current;
  return $compare > $self->[0] if($compare =~ $number && $self->[1]);
  return $compare gt $self->[0];
}

package Array::Stream::Transactional::Matcher::Value::lt;
our @ISA = qw(Array::Stream::Transactional::Matcher::Value);

sub match {
  my ($self, $stream) = @_;
  my $compare = $stream->current;
  return $compare < $self->[0] if($compare =~ $number && $self->[1]);
  return $compare lt $self->[0];
}

package Array::Stream::Transactional::Matcher::Value::ge;
our @ISA = qw(Array::Stream::Transactional::Matcher::Value);

sub match {
  my ($self, $stream) = @_;
  my $compare = $stream->current;
  return $compare >= $self->[0] if($compare =~ $number && $self->[1]);
  return $compare ge $self->[0];
}

package Array::Stream::Transactional::Matcher::Value::le;
our @ISA = qw(Array::Stream::Transactional::Matcher::Value);

sub match {
  my ($self, $stream) = @_;
  my $compare = $stream->current;
  return $compare <= $self->[0] if($compare =~ $number && $self->[1]);
  return $compare le $self->[0];
}

package Array::Stream::Transactional::Matcher::Value::isa;
our @ISA = qw(Array::Stream::Transactional::Matcher::Value);

sub match {
  my ($self, $stream) = @_;
  my $compare = $stream->current;
  return 0 unless(ref $compare);
  return UNIVERSAL::isa($compare, $self->[0]);
}

1;
__END__
=head1 NAME

Array::Stream::Transactional::Matcher::Value - Rules implementing value checks

=head1 DESCRIPTION

Array::Stream::Transactional::Matcher::Value implements the standard comparision operators eq, ne, gt, lt, ge, le and isa.

=head1 RULES

=head2 Array::Stream::Transactional::Matcher::Value::eq

Does B<==> if it looks like a number, otherwise it does an B<eq>

=over 4

=item new ( $VALUE )

Creates a new EQ rule where the value must be equal to the value of $VALUE.

=back

=head2 Array::Stream::Transactional::Matcher::Value::ne

Does B<!=> if it looks like a number, otherwise it does an B<ne>

=over 4

=item new ( $VALUE )

Creates a new NE rule where the value must not be equal to the value of $VALUE.

=back

=head2 Array::Stream::Transactional::Matcher::Value::gt

Does B<E<gt>> if it looks like a number, otherwise it does an B<gt>

=over 4

=item new ( $VALUE )

Creates a new GT rule where the value must be greater than the value of $VALUE.

=back

=head2 Array::Stream::Transactional::Matcher::Value::lt

Does B<E<lt>> if it looks like a number, otherwise it does an B<lt>

=over 4

=item new ( $VALUE )

Creates a new LT rule where the value must be less than the value of $VALUE.

=back

=head2 Array::Stream::Transactional::Matcher::Value::ge

Does B<E<gt>=> if it looks like a number, otherwise it does an B<le>

=over 4

=item new ( $VALUE )

Creates a new GE rule where the value must be greater than or equal to the value of $VALUE.

=back

=head2 Array::Stream::Transactional::Matcher::Value::le

Does B<E<lt>=> if it looks like a number, otherwise it does an B<le>

=over 4

=item new ( $VALUE )

Creates a new LE rule where the value must be less than or equal tothe value of $VALUE.

=back

=head2 Array::Stream::Transactional::Matcher::Value::isa

Checks if the value is an object and of a specific class or one of its subclasses.

=over 4

=item new ( $VALUE )

Creates a new ISA rule where the value must be an object and belongs to the class specified in $VALUE or one of its subclasses.

=back

=head1 EXPORT

None by default.

=head1 AUTHOR

Claes Jacobsson, E<lt>claesjac@cpan.orgE<gt>

=head1 COPYRIGHT

Copyright 2004 by Claes Jacobsson

This library is free software; you can redistribute it and/or modify it 
under the same license terms as Perl itself.

=cut






( run in 1.899 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )