|
NAMEData::Object::Role::Formulatable - Objectify Class AttributesABSTRACTFormulatable Role for Perl 5SYNOPSISpackage Test::Student; use registry; use routines; use Data::Object::Class; use Data::Object::ClassHas; with 'Data::Object::Role::Formulatable'; has 'name'; has 'dates'; sub formulate { { name => 'test/data/str', dates => 'test/data/str' } } package main; my $student = Test::Student->new({ name => 'levi nolan', dates => ['1587717124', '1587717169'] }); # $student->name; # <Test::Data::Str> # $student->dates; # [<Test::Data::Str>] DESCRIPTIONThis package provides a mechanism for automatically inflating objects from constructor arguments.INTEGRATESThis package integrates behaviors from:Data::Object::Role::Buildable LIBRARIESThis package uses type constraints from:Types::Standard SCENARIOSThis package supports the following scenarios:automationpackage Test::Teacher; use registry; use routines; use Data::Object::Class; use Data::Object::ClassHas; with 'Data::Object::Role::Formulatable'; has 'name'; has 'dates'; sub formulate { { name => 'test/data/str', dates => 'test/data/str' } } sub after_formulate { { name => 1 } } sub after_formulate_name { my ($self, $value) = @_; $value } sub before_formulate { { name => 1 } } sub before_formulate_name { my ($self, $value) = @_; $value } package main; my $teacher = Test::Teacher->new({ name => 'levi nolan', dates => ['1587717124', '1587717169'] }); # $teacher->name; # <Test::Data::Str> # $teacher->dates; # [<Test::Data::Str>] This package supports automatically calling "before" and "after" routines specific to each piece of data provided. This is automatically enabled if the presence of a "before_formulate" and/or "after_formulate" routine is detected. If so, these routines should return a hashref keyed off the class attributes where the values are either 1 (denoting that the hook name should be generated) or some other routine name. AUTHORAl Newkirk, "awncorp@cpan.org"LICENSECopyright (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" <https://github.com/iamalnewkirk/data-object-role-formulatable/blob/master/LICENSE>. PROJECTWiki <https://github.com/iamalnewkirk/data-object-role-formulatable/wiki>Project <https://github.com/iamalnewkirk/data-object-role-formulatable> Initiatives <https://github.com/iamalnewkirk/data-object-role-formulatable/projects> Milestones <https://github.com/iamalnewkirk/data-object-role-formulatable/milestones> Contributing <https://github.com/iamalnewkirk/data-object-role-formulatable/blob/master/CONTRIBUTE.md> Issues <https://github.com/iamalnewkirk/data-object-role-formulatable/issues>
Visit the GSP FreeBSD Man Page Interface. |