NAME

Data::Object::Role

ABSTRACT

Role Builder for Perl 5

SYNOPSIS

  package Identity;

  use Data::Object::Role;

  package Example;

  use Moo;

  with 'Identity';

  package main;

  my $example = Example->new;

DESCRIPTION

This package modifies the consuming package making it a role.

INHERITS

This package inherits behaviors from:

Moo

SCENARIOS

This package supports the following scenarios:

has

  package HasIdentity;

  use Data::Object::Role;

  has id => (
    is => 'ro'
  );

  package HasExample;

  use Moo;

  with 'HasIdentity';

  package main;

  my $example = HasExample->new;

This package supports the has keyword, which is used to declare role attributes, which can be accessed and assigned to using the built-in getter/setter or by the object constructor. See Moo for more information.

requires

  package EntityRequires;

  use Data::Object::Role;

  requires 'execute';

  package RequiresExample;

  use Moo;

  with 'EntityRequires';

  sub execute {

    # does something ...
  }

  package main;

  my $example = RequiresExample->new;

This package supports the requires keyword, which is used to declare methods which must exist in the consuming package. See Moo for more information.

with

  package WithEntity;

  use Data::Object::Role;

  package WithIdentity;

  use Data::Object::Role;

  with 'WithEntity';

  package WithExample;

  use Moo;

  with 'WithIdentity';

  package main;

  my $example = WithExample->new;

This package supports the with keyword, which is used to declare roles to be used and compose into your role. See Moo for more information.

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