Attribute-Contract
view release on metacpan or search on metacpan
"requires" : {
"Carp" : "0",
"Exporter" : "0",
"Scalar::Util" : "0",
"Type::Tiny" : "0.006",
"perl" : "5.012"
}
},
"test" : {
"requires" : {
"Test::Fatal" : "0",
"Test::More" : "0"
}
}
},
"provides" : {
"Attribute::Contract" : {
"file" : "lib/Attribute/Contract.pm",
"version" : "0.05"
},
"Attribute::Contract::Modifier::Ensures" : {
---
abstract: 'Design by contract via Perl attributes'
author:
- 'Viacheslav Tykhanovskyi, C<vti@cpan.org>.'
build_requires:
Test::Fatal: 0
Test::More: 0
configure_requires:
CPAN::Meta: 0
CPAN::Meta::Prereqs: 0
Module::Build: 0.38
dynamic_config: 0
generated_by: 'Minilla/v0.7.5, CPAN::Meta::Converter version 2.130880'
license: unknown
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
requires 'Carp' => '0';
requires 'Scalar::Util' => '0';
requires 'Exporter' => '0';
requires 'Type::Tiny' => '0.006';
on 'test' => sub {
requires 'Test::More' => '0';
requires 'Test::Fatal' => '0';
};
t/aliases.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal;
package MyClass;
use Attribute::Contract
-types => [qw/ClassName Str/],
-names => {requires => 'In', ensures => 'Out'};
sub method : In(ClassName, Str) Out(Str) {
{}
}
t/ensures.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal;
package MyClass;
use Attribute::Contract -types => [qw/Str/];
sub method : ContractEnsures(Str) {
'ok';
}
package MyClassInvalid;
t/inheritance.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal;
package MyClass;
use Attribute::Contract -types => [qw/ClassName Str/];
sub method : ContractRequires(ClassName, Str) {
}
package MyChildClass;
use base 'MyClass';
t/requires.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal;
package MyClass;
use Attribute::Contract -types => [qw/ClassName Int Str slurpy HashRef Dict/];
sub new : ContractRequires(ClassName, slurpy Dict[foo => Int]) {
}
sub method : ContractRequires(ClassName, Str) {
}
( run in 1.647 second using v1.01-cache-2.11-cpan-54e63673c56 )