package Perl6::Junction::One;
use strict;
our $VERSION = '1.60000';
use base 'Perl6::Junction::Base';
sub num_eq {
return regex_eq(@_) if ref( $_[1] ) eq 'Regexp';
my ( $self, $test ) = @_;
my $count = 0;
for (@$self) {
if ( $_ == $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub num_ne {
return regex_ne(@_) if ref( $_[1] ) eq 'Regexp';
my ( $self, $test ) = @_;
my $count = 0;
for (@$self) {
if ( $_ != $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub num_ge {
my ( $self, $test, $switch ) = @_;
return num_le( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ >= $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub num_gt {
my ( $self, $test, $switch ) = @_;
return num_lt( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ > $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub num_le {
my ( $self, $test, $switch ) = @_;
return num_ge( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ <= $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub num_lt {
my ( $self, $test, $switch ) = @_;
return num_gt( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ < $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub str_eq {
my ( $self, $test ) = @_;
my $count = 0;
for (@$self) {
if ( $_ eq $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub str_ne {
my ( $self, $test ) = @_;
my $count = 0;
for (@$self) {
if ( $_ ne $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub str_ge {
my ( $self, $test, $switch ) = @_;
return str_le( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ ge $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub str_gt {
my ( $self, $test, $switch ) = @_;
return str_lt( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ gt $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub str_le {
my ( $self, $test, $switch ) = @_;
return str_ge( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ le $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub str_lt {
my ( $self, $test, $switch ) = @_;
return str_gt( $self, $test ) if $switch;
my $count = 0;
for (@$self) {
if ( $_ lt $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub regex_eq {
my ( $self, $test, $switch ) = @_;
my $count = 0;
for (@$self) {
if ( $_ =~ $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub regex_ne {
my ( $self, $test, $switch ) = @_;
my $count = 0;
for (@$self) {
if ( $_ !~ $test ) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
sub bool {
my ($self) = @_;
my $count = 0;
for (@$self) {
if ($_) {
return if $count;
$count = 1;
}
}
return 1 if $count;
}
1;