Venus::Role::Assertable - Assertable Role
Assertable Role for Perl 5
package Example; use Venus::Class; use Venus::Assert; with 'Venus::Role::Assertable'; sub assertion { Venus::Assert->new('Example')->accept('Example') } package main; my $example = Example->new; # $example->check;
This package modifies the consuming package and requires methods for making the object assertable.
This package provides the following methods:
assert(any $data) (any)
The assert method returns the data provided if it passes the registered type constraints, or throws an exception.
Since 1.23
1.23
# given: synopsis package main; my $assert = $example->assert; # Exception! (isa Venus::Check::Error)
# given: synopsis package main; my $assert = $example->assert({}); # Exception! (isa Venus::Check::Error)
# given: synopsis package main; my $assert = $example->assert($example); # bless({}, "Example")
assertion() (Venus::Assert)
The assertion method receives no arguments and should returns a Venus::Assert object.
package main; my $example = Example->new; my $assertion = $example->assertion; # bless({name => "Example"}, "Venus::Assert")
check(any $data) (boolean)
The check method returns true if the data provided passes the registered type constraints, or returns false.
# given: synopsis package main; my $check = $example->check; # 0
# given: synopsis package main; my $check = $example->check({}); # 0
# given: synopsis package main; my $check = $example->check($example); # 1
coerce(any $data) (any)
The coerce method returns a coerced value if the data provided matches any of the registered type coercions, or returns the data provided.
# given: synopsis package main; my $assertion = $example->assertion; $assertion->match('string')->format(sub{ucfirst(lc($_))}); my $coerce = $assertion->coerce; # undef
# given: synopsis package main; my $assertion = $example->assertion; $assertion->match('string')->format(sub{ucfirst(lc($_))}); my $coerce = $assertion->coerce({}); # {}
# given: synopsis package main; my $assertion = $example->assertion; $assertion->match('string')->format(sub{ucfirst(lc($_))}); my $coerce = $assertion->coerce('hello'); # "Hello"
make(any $data) (object)
The make method returns an instance of the invocant, if the data provided passes the registered type constraints, allowing for any coercion, or throws an exception. If the data provided is itself an instance of the invocant it will be returned unaltered.
# given: synopsis package main; my $make = $example->make; # Exception! (isa Venus::Check::Error)
# given: synopsis package main; my $make = $example->make($example); # bless({}, "Example")
# given: synopsis package main; my $make = $example->make({}); # Exception! (isa Venus::Check::Error)
Awncorp, awncorp@cpan.org
awncorp@cpan.org
Copyright (C) 2000, Awncorp, awncorp@cpan.org.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.
To install Venus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Venus
CPAN shell
perl -MCPAN -e shell install Venus
For more information on module installation, please visit the detailed CPAN module installation guide.