| Bread-Board documentation | Contained in the Bread-Board distribution. |
Bread::Board::ConstructorInjection
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to cpan-RT.
Stevan Little <stevan@iinteractive.com>
Copyright 2007-2011 by Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Bread-Board documentation | Contained in the Bread-Board distribution. |
package Bread::Board::ConstructorInjection; use Moose; use Try::Tiny; use Bread::Board::Types; our $VERSION = '0.20'; our $AUTHORITY = 'cpan:STEVAN'; with 'Bread::Board::Service::WithClass', 'Bread::Board::Service::WithDependencies', 'Bread::Board::Service::WithParameters'; has 'constructor_name' => ( is => 'rw', isa => 'Str', lazy => 1, builder => '_build_constructor_name', ); sub _build_constructor_name { my $self = shift; try { Class::MOP::class_of($self->class)->constructor_name } || 'new'; } sub get { my $self = shift; my $constructor = $self->constructor_name; $self->class->$constructor( %{ $self->params } ); } __PACKAGE__->meta->make_immutable; no Moose; 1; __END__