Type-Tiny
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
};
my %dynamic_config;
do {
use strict;
use warnings;
no warnings 'uninitialized';
# Old versions of Perl come with old versions of Exporter.
# Not that we use Exporter a whole lot anyway.
if ( $] lt 5.009001 ) {
$meta->{prereqs}{runtime}{requires}{'Exporter'} = '5.57';
}
my $extended_testing = 0;
if ( $ENV{EXTENDED_TESTING} and $] ge '5.008009' ) {
++$extended_testing if $meta->{version} =~ /_/;
++$extended_testing if $ENV{TRAVIS};
}
if ( $ENV{MINIMAL_INSTALL} ) {
$extended_testing = 0;
for my $stage ( qw( runtime test ) ) {
delete $meta->{prereqs}{$stage}{recommends};
delete $meta->{prereqs}{$stage}{suggests};
}
Makefile.PL view on Meta::CPAN
Object::Accessor
PadWalker
Return::Type
strictures
Test::Fatal
Test::LeakTrace
Test::Requires
Test::Tester
Test::Warnings
);
if ( $] ge '5.028' ) {
$meta->{prereqs}{test}{requires}{$_} = '0'
for qw(
Validation::Class::Simple
);
}
}
if ( $ENV{AUTOMATED_TESTING} and "$^V" =~ /c$/ ) {
print "cperl unsupported by test suite (the vast majority of the distribution should still work)\n";
exit(0);
lib/Eval/TypeTiny.pm view on Meta::CPAN
sub IMPLEMENTATION_PADWALKER () { 'PadWalker' }
sub IMPLEMENTATION_TIE () { 'tie' }
sub IMPLEMENTATION_NATIVE () { 'perl' }
my $implementation;
#<<<
# uncoverable subroutine
sub ALIAS_IMPLEMENTATION () {
$implementation ||= _pick_alternative(
if => ( $] ge '5.022' ) => IMPLEMENTATION_NATIVE,
needs => 'Devel::LexAlias' => IMPLEMENTATION_DEVEL_LEXALIAS,
needs => 'PadWalker' => IMPLEMENTATION_PADWALKER,
if => !!1 => IMPLEMENTATION_TIE,
);
}
#>>>
sub _force_implementation {
$implementation = shift;
}
lib/Type/Tiny/Enum.pm view on Meta::CPAN
sub closest_match {
require Types::Standard;
my ( $self, $given ) = ( shift, @_ );
return unless Types::Standard::is_Str $given;
return $given if $self->check( $given );
$canon ||= eval(
$] lt '5.016'
? q< sub { ( my $var = lc($_[0]) ) =~ s/(^\s+)|(\s+$)//g; $var } >
: q< sub { CORE::fc($_[0]) =~ s/(^\s+)|(\s+$)//gr; } >
);
$self->{_lookups} ||= do {
my %lookups;
for ( @{ $self->values } ) {
my $key = $canon->( $_ );
next if exists $lookups{$key};
$lookups{$key} = $_;
lib/Types/TypeTiny.pm view on Meta::CPAN
);
_reinstall_subs $cache{ArrayLike};
} #/ if ( __XS )
else {
$cache{ArrayLike} = "Type::Tiny"->new( %common );
}
@_ ? $cache{ArrayLike}->parameterize( @{ $_[0] } ) : $cache{ArrayLike};
} #/ sub ArrayLike (;@)
if ( $] ge '5.014' ) {
&Scalar::Util::set_prototype( $_, ';$' ) for \&HashLike, \&ArrayLike;
}
sub CodeLike () {
return $cache{CodeLike} if $cache{CodeLike};
require Type::Tiny;
my %common = (
name => "CodeLike",
constraint => sub {
ref( $_ ) eq q[CODE]
t/20-modules/Type-Tiny/inline-assert.t view on Meta::CPAN
use strict;
use warnings;
use lib qw( ./lib ./t/lib ../inc ./inc );
use Test::More;
use Test::Fatal;
use Types::Standard qw( Int );
# Exceptions do seem to work on older Perls, but checking them with like()
# seems to break stuff, so just skip.
use constant SANE_PERL => ($] ge '5.008001');
my ($inline_assert, @VALUE, $r);
local $@;
note("INLINE ASSERTION, INLINABLE TYPE, NO TYPEVAR");
note($inline_assert = Int->inline_assert('$VALUE[0]'));
@VALUE = (12);
$@ = undef;
$r = eval "$inline_assert; 1234";
( run in 1.186 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )