Robert 'phaylon' Sedlacek > Class-Component-Recipe-0.01_02 > Class::Component::Recipe

Download:
Class-Component-Recipe-0.01_02.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 0.01_02   Source  

NAME ^

Class::Component::Recipe - Dynamic Component Containers

SYNOPSIS ^

  use Class::Component::Recipe;

  # Create a new C:C:R object. Most work is done in the collection
  my $ccr = Class::Component::Recipe->new(base_class => 'Foo::Base');
  my $col = $ccr->get_collection;

  # Prepare the class list as you need it. See the Collection pod.
  $col->push('Foo::ComponentA');
  $col->push('Foo::ComponentB');
  $col->insert('Foo::Middle', 1);

  # Install. @MyApp::Foo::ISA is now: Foo::ComponentB, Foo::Middle,
  # Foo::ComponentA, Foo::Base. Previously existing entries will be
  # before Foo::Base.
  $ccr->install('MyApp::Foo');

DESCRIPTION ^

This module provides functionality to build a collection of classes and install it together with a base in a container class. This allows the dynamic creation of component based classes.

ATTRIBUTES ^

(get_|set_|has_)base_class

The base class of the component container to build.

(get_|set_|has_)collection

The collection object handling component order and installing the final container.

(get_|set_)collection_class

The class name of the collection object this recipe will produce.

METHODS ^

BUILD($param)

Moose method. Initializes collection if not passed to constructor.

install($target_class)

Installs the collection and the base class into the $target_class.

SEE ALSO ^

Class::Component::Recipe::Collection for the collection interface. NEXT, C3 for component designing systems with multiple inheritance.

REQUIRES ^

aliased, Class::Inspector, Carp::Clan, Moose, Moose::Policy, Test::More (for build).

AUTHOR ^

Robert 'phaylon' Sedlacek <phaylon@dunkelheit.at>

LICENSE AND COPYRIGHT ^

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.