Data::Object::Role::Buildable
Buildable Role for Perl 5
package Vehicle; use Moo; with 'Data::Object::Role::Buildable'; has name => ( is => 'rw' ); 1;
This package provides methods for hooking into object construction of the consuming class, e.g. handling single-arg object construction.
This package supports the following scenarios:
package Car; use Moo; extends 'Vehicle'; sub build_arg { my ($class, $name) = @_; # do something with $name or $class ... return { name => $name }; } package main; my $car = Car->new('tesla');
This package supports handling a build_arg method, as a hook into object construction, which is called and passed a single argument if a single argument is passed to the constructor.
build_arg
package Sedan; use Moo; extends 'Car'; sub build_args { my ($class, $args) = @_; # do something with $args or $class ... $args->{name} = ucfirst $args->{name}; return $args; } package main; my $sedan = Sedan->new('tesla');
This package supports handling a build_args method, as a hook into object construction, which is called and passed a hashref during object construction.
build_args
hashref
package Taxicab; use Moo; extends 'Sedan'; sub build_self { my ($self, $args) = @_; # do something with $self or $args ... $args->{name} = 'Toyota'; return; } package main; my $taxicab = Taxicab->new('tesla');
This package supports handling a build_self method, as a hook into object construction, which is called and passed a hashref during object construction. Note: Manipulating the arguments doesn't effect object's construction or properties.
build_self
Al Newkirk, awncorp@cpan.org
awncorp@cpan.org
Copyright (C) 2011-2019, Al Newkirk, et al.
This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".
Wiki
Project
Initiatives
Milestones
Contributing
Issues
To install Data::Object::Role::Buildable, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Data::Object::Role::Buildable
CPAN shell
perl -MCPAN -e shell install Data::Object::Role::Buildable
For more information on module installation, please visit the detailed CPAN module installation guide.