Bubblegum
view release on metacpan or search on metacpan
lib/Bubblegum/Object/Array.pm view on Meta::CPAN
# ABSTRACT: Common Methods for Operating on Array References
package Bubblegum::Object::Array;
use 5.10.0;
use namespace::autoclean;
use Bubblegum::Class 'with';
use Bubblegum::Constraints -isas, -types;
use Scalar::Util 'looks_like_number';
with 'Bubblegum::Object::Role::Defined';
with 'Bubblegum::Object::Role::Indexed';
with 'Bubblegum::Object::Role::List';
with 'Bubblegum::Object::Role::Ref';
with 'Bubblegum::Object::Role::Coercive';
with 'Bubblegum::Object::Role::Output';
our @ISA = (); # non-object
our $VERSION = '0.45'; # VERSION
sub all {
my $self = CORE::shift;
my $code = CORE::shift;
$code = $code->codify if isa_string $code;
type_coderef $code;
my $found = CORE::grep { $code->($_, @_) } @$self;
return $found == @$self ? 1 : 0;
}
sub any {
my $self = CORE::shift;
my $code = CORE::shift;
$code = $code->codify if isa_string $code;
type_coderef $code;
my $found = CORE::grep { $code->($_, @_) } @$self;
return $found ? 1 : 0;
}
sub clear {
goto ∅
}
sub count {
goto &length;
}
sub defined {
my $self = CORE::shift;
my $index = type_number CORE::shift;
return CORE::defined $self->[$index];
}
sub delete {
my $self = CORE::shift;
my $index = type_number CORE::shift;
return CORE::delete $self->[$index];
}
( run in 0.558 second using v1.01-cache-2.11-cpan-f56aa216473 )