NAME
Venus::Kind - Kind Base Class
ABSTRACT
Kind Base Class for Perl 5
SYNOPSIS
package Example;
use Venus::Class;
base 'Venus::Kind';
package main;
my $example = Example->new;
# bless({}, "Example")
DESCRIPTION
This package provides identity and methods common across all Venus classes.
INTEGRATES
This package integrates behaviors from:
METHODS
This package provides the following methods:
assertion
assertion() (Assert)
The assertion method returns a Venus::Assert object based on the invocant.
Since 1.23
- assertion example 1
-
# given: synopsis package main; my $assertion = $example->assertion; # bless({name => "Example"}, "Venus::Assert")
checksum
checksum() (Str)
The checksum method returns an md5 hash string representing the stringified object value (or the object itself).
Since 0.08
- checksum example 1
-
# given: synopsis; my $checksum = $example->checksum; # "859a86eed4b2d97eb7b830b02f06de32"
- checksum example 2
-
package Checksum::Example; use Venus::Class; base 'Venus::Kind'; attr 'value'; package main; my $example = Checksum::Example->new(value => 'example'); my $checksum = $example->checksum; # "1a79a4d60de6718e8e5b326e338ae533"
numified
numified() (Int)
The numified method returns the numerical representation of the object which is typically the length (or character count) of the stringified object.
Since 0.08
- numified example 2
-
package Numified::Example; use Venus::Class; base 'Venus::Kind'; attr 'value'; package main; my $example = Numified::Example->new(value => 'example'); my $numified = $example->numified; # 7
renew
renew(Any @args) (Object)
The renew method returns a new instance of the invocant by instantiating the underlying class passing all recognized class attributes to the constructor. Note: This method is not analogous to clone
, i.e. attributes which are references will be passed to the new object as references.
Since 1.23
- renew example 2
-
package Example; use Venus::Class; base 'Venus::Kind'; attr 'values'; package main; my $example = Example->new(values => [1,2]); my $renew = $example->renew; # bless({values => [1,2]}, "Example")
- renew example 3
-
package Example; use Venus::Class; base 'Venus::Kind'; attr 'keys'; attr 'values'; package main; my $example = Example->new(values => [1,2]); my $renew = $example->renew(keys => ['a','b']); # bless({keys => ["a","b"], values => [1,2]}, "Example")
safe
safe(Str | CodeRef $code, Any @args) (Any)
The safe method dispatches the method call or executes the callback and returns the result, supressing warnings and exceptions. If an exception is thrown this method will return undef
. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.
Since 0.08
self
self() (Any)
The self method returns the invocant.
Since 1.23
stringified
stringified() (Str)
The stringified method returns the object, stringified (i.e. a dump of the object's value).
Since 0.08
- stringified example 1
-
# given: synopsis; my $stringified = $example->stringified; # bless({}, 'Example')
- stringified example 2
-
package Stringified::Example; use Venus::Class; base 'Venus::Kind'; attr 'value'; package main; my $example = Stringified::Example->new(value => 'example'); my $stringified = $example->stringified; # "example"
trap
trap(Str | CodeRef $code, Any @args) (Tuple[ArrayRef, ArrayRef, ArrayRef])
The trap method dispatches the method call or executes the callback and returns a tuple (i.e. a 3-element arrayref) with the results, warnings, and exceptions from the code execution. If an exception is thrown, the results (i.e. the 1st-element) will be an empty arrayref. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.
Since 0.08
- trap example 2
-
# given: synopsis; my ($results, $warnings, $errors) = $example->trap('class'); # (["Example"], [], [])