NAME

Data::Object

ABSTRACT

Modern Perl Development Framework and Standard Library

SYNOPSIS

package User;

use Data::Object 'Class';

extends 'Identity';

has 'fname';
has 'lname';

1;

DESCRIPTION

The Data::Object package and framework aims to provide a standardized and cohesive set of classes, types, objects, functions, patterns, and tools for jump-starting application development with modern conventions and best practices.

FUNCTIONS

This package implements the following functions.

any

any(Any $arg) : Object

The any constructor function returns a Data::Object::Any object for given argument.

any example
# given \*main

my $object = Data::Object->any(\*main);

array

array(ArrayRef $arg) : Object

The array constructor function returns a Data::Object::Array object for given argument.

array example
# given [1..4]

my $object = Data::Object->array([1..4]);

code

code(CodeRef $arg) : Object

The code constructor function returns a Data::Object::Code object for given argument.

code example
# given sub { shift + 1 }

my $object = Data::Object->code(sub { $_[0] + 1 });

exception

exception(HashRef $arg) : Object

The exception constructor function returns a Data::Object::Exception object for given argument.

exception example
# given { message => 'Oops' }

my $object = Data::Object->exception({ message => 'Oops' });

float

float(Num $arg) : Object

The float constructor function returns a Data::Object::Float object for given argument.

float example
# given 1.23

my $object = Data::Object->float(1.23);

hash

hash(HashRef $arg) : Object

The hash constructor function returns a Data::Object::Hash object for given argument.

hash example
# given {1..4}

my $object = Data::Object->hash({1..4});

integer

integer(Int $arg) : Object

The integer constructor function returns a Data::Object::Integer object for given argument.

integer example
# given -123

my $object = Data::Object->integer(-123);

number

number(Num $arg) : Object

The number constructor function returns a Data::Object::Number object for given argument.

number example
# given 123

my $object = Data::Object->number(123);

regexp

regexp(Regexp $arg) : Object

The regexp constructor function returns a Data::Object::Regexp object for given argument.

regexp example
# given qr(\w+)

my $object = Data::Object->regexp(qr(\w+));

scalar

scalar(Any $arg) : Object

The scalar constructor function returns a Data::Object::Scalar object for given argument.

scalar example
# given \*main

my $object = Data::Object->scalar(\*main);

string

string(Str $arg) : Object

The string constructor function returns a Data::Object::String object for given argument.

string example
# given 'hello'

my $object = Data::Object->string('hello');

undef

undef(Undef $arg?) : Object

The undef constructor function returns a Data::Object::Undef object for given argument.

undef example
# given undef

my $object = Data::Object->undef(undef);

METHODS

This package implements the following methods.

new

new(Str $arg) : Object

The new method expects a string representing a class name under the Data::Object namespace and returns a Data::Object::Space object.

new example
# given 'String'

my $space = Data::Object->new('String');

my $string = $space->build('hello world');