[libbread-board-perl] 22/66: Make containers created from parameterized containers identifyable by their class

Jonas Smedegaard js at alioth.debian.org
Sun Sep 29 21:23:34 UTC 2013


This is an automated email from the git hooks/post-receive script.

js pushed a commit to branch master
in repository libbread-board-perl.

commit 08a1aafe00a6723d8339d478677be72f95577f4b
Author: Florian Ragwitz <rafl at debian.org>
Date:   Sun Jul 21 13:46:04 2013 -0700

    Make containers created from parameterized containers identifyable by their class
---
 lib/Bread/Board/Container/FromParameterized.pm |    8 ++++++++
 lib/Bread/Board/Container/Parameterized.pm     |    7 ++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/lib/Bread/Board/Container/FromParameterized.pm b/lib/Bread/Board/Container/FromParameterized.pm
new file mode 100644
index 0000000..0c81f49
--- /dev/null
+++ b/lib/Bread/Board/Container/FromParameterized.pm
@@ -0,0 +1,8 @@
+package Bread::Board::Container::FromParameterized;
+use Moose;
+
+extends 'Bread::Board::Container';
+
+__PACKAGE__->meta->make_immutable;
+
+no Moose; 1;
diff --git a/lib/Bread/Board/Container/Parameterized.pm b/lib/Bread/Board/Container/Parameterized.pm
index 1482b3b..d22496f 100644
--- a/lib/Bread/Board/Container/Parameterized.pm
+++ b/lib/Bread/Board/Container/Parameterized.pm
@@ -1,5 +1,7 @@
 package Bread::Board::Container::Parameterized;
 use Moose;
+use Moose::Util 'find_meta';
+use Bread::Board::Container::FromParameterized;
 # ABSTRACT: A parameterized container
 
 use Bread::Board::Container;
@@ -69,6 +71,9 @@ sub create {
                     : $self->container->name)
     );
 
+    my $from_parameterized_meta = find_meta('Bread::Board::Container::FromParameterized');
+    $clone = $from_parameterized_meta->rebless_instance($clone);
+
     foreach my $key ( @given_names ) {
         $clone->add_sub_container(
             $params{ $key }->clone( name => $key )
@@ -80,7 +85,7 @@ sub create {
 
 __PACKAGE__->meta->make_immutable;
 
-no Moose; 1;
+no Moose; no Moose::Util; 1;
 
 __END__
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libbread-board-perl.git



More information about the Pkg-perl-cvs-commits mailing list