NAME
Venus::Role::Boxable - Boxable Role
ABSTRACT
Boxable Role for Perl 5
SYNOPSIS
package Example;
use Venus::Class;
with 'Venus::Role::Boxable';
attr 'text';
package main;
my $example = Example->new(text => 'hello, world');
# $example->box('text')->lc->ucfirst->concat('.')->unbox->get;
# "Hello, world."
DESCRIPTION
This package modifies the consuming package and provides a method for boxing itself. This makes it possible to chain method calls across objects and values.
METHODS
This package provides the following methods:
box
box(Str | CodeRef $method, Any @args) (Self)
The box method returns the invocant boxed, i.e. encapsulated, using Venus::Box. This method supports dispatching, i.e. providing a method name and arguments whose return value will be acted on by this method.
Since 0.01
- box example 1
-
package main; my $example = Example->new(text => 'hello, world'); my $box = $example->box; # bless({ value => bless(..., "Example") }, "Venus::Box")
- box example 2
-
package main; my $example = Example->new(text => 'hello, world'); my $box = $example->box('text'); # bless({ value => bless(..., "Venus::String") }, "Venus::Box") # $example->box('text')->lc->ucfirst->concat('.')->unbox->get;
AUTHORS
Awncorp, awncorp@cpan.org
LICENSE
Copyright (C) 2000, Al Newkirk.
This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.