An open API service indexing awesome lists of open source software.

https://github.com/awncorp/data-object-role-formulatable

Formulatable Role for Perl 5
https://github.com/awncorp/data-object-role-formulatable

object-oriented perl perl5

Last synced: 16 days ago
JSON representation

Formulatable Role for Perl 5

Awesome Lists containing this project

README

          

NAME

Data::Object::Role::Formulatable - Objectify Class Attributes

ABSTRACT

Formulatable Role for Perl 5

SYNOPSIS

package 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;
#

# $student->dates;
# []

DESCRIPTION

This package provides a mechanism for automatically inflating objects
from constructor arguments.

INTEGRATES

This package integrates behaviors from:

Data::Object::Role::Buildable

LIBRARIES

This package uses type constraints from:

Types::Standard

SCENARIOS

This package supports the following scenarios:

automation

package 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;
#

# $teacher->dates;
# []

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.

AUTHOR

Al Newkirk, awncorp@cpan.org

LICENSE

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"
.

PROJECT

Wiki

Project

Initiatives

Milestones

Contributing

Issues