Mercurial > pub > Impl
view Lib/IMPL/Object/InlineFactory.pm @ 359:833e663796c4
TTView: added view variable to pass rendering context between controls
TTView: display function renamed to display_for
WebResource: resources now marked with roles for searching a desired resource by a role in the resource chain
author | sergey |
---|---|
date | Mon, 25 Nov 2013 02:19:31 +0400 |
parents | f2a6bc5f3184 |
children |
line wrap: on
line source
package IMPL::Object::InlineFactory; use strict; use Carp qw(croak); sub new { my $self = shift; if(ref $self) { return &$$self(@_); } else { my $factory = shift; croak "A code reference is required" unless ref $factory eq 'CODE'; return bless \$factory, $self; } } 1; __END__ =pod =head1 NAME C<IMPL::Object::InlineFactory> - реализация фабрики на основе процедуры. =head1 SYNOPSIS =begin code use IMPL::require { InlineFactory => 'IMPL::Object::InlineFactory', Foo => 'My::App::Foo' }; my $factory = InlineFactory->new(sub { Foo->new(mode => 'direct', @_) }); my $obj = $factory->new(timeout => 10); # Foo->new(mode => 'direct', timeout => 10); =end code =cut