Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iizukanao/636312 to your computer and use it in GitHub Desktop.
Save iizukanao/636312 to your computer and use it in GitHub Desktop.
tar zxvf Object-Container-0.11.tar.gz && cd Object-Container-0.11 && patch -p1 < this.patch
diff -Nur Object-Container-0.11.orig/Makefile.PL Object-Container-0.11/Makefile.PL
--- Object-Container-0.11.orig/Makefile.PL 2010-10-05 18:54:58.000000000 +0900
+++ Object-Container-0.11/Makefile.PL 2010-10-20 20:21:20.000000000 +0900
@@ -5,6 +5,7 @@
requires 'Carp';
requires 'Class::Accessor::Fast';
requires 'parent';
+requires 'B::Hooks::EndOfScope';
recommends 'Exporter::AutoClean';
test_requires 'Test::More' => '0.88';
diff -Nur Object-Container-0.11.orig/lib/Object/Container.pm Object-Container-0.11/lib/Object/Container.pm
--- Object-Container-0.11.orig/lib/Object/Container.pm 2010-10-14 12:13:25.000000000 +0900
+++ Object-Container-0.11/lib/Object/Container.pm 2010-10-20 21:14:09.000000000 +0900
@@ -3,6 +3,7 @@
use strict;
use warnings;
use parent qw(Class::Accessor::Fast);
+use B::Hooks::EndOfScope;
use Carp;
our $VERSION = '0.11';
@@ -36,13 +37,18 @@
},
);
- if (eval q[use Exporter::AutoClean]) {
+ if (eval q[require Exporter::AutoClean]) {
Exporter::AutoClean->export( $caller, %exports );
}
else {
while (my ($name, $fn) = each %exports) {
*{"${caller}::${name}"} = $fn;
}
+ on_scope_end {
+ for my $name (keys %exports) {
+ delete ${ $caller . '::' }{ $name };
+ }
+ };
@EXPORTS = keys %exports;
}
}
diff -Nur Object-Container-0.11.orig/t/05_subclass_no_autoclean.t Object-Container-0.11/t/05_subclass_no_autoclean.t
--- Object-Container-0.11.orig/t/05_subclass_no_autoclean.t 2010-10-06 09:54:33.000000000 +0900
+++ Object-Container-0.11/t/05_subclass_no_autoclean.t 2010-10-20 21:12:44.000000000 +0900
@@ -14,7 +14,7 @@
# obj->register == Foo::register because this is in no clean state
is obj->can('register'), Foo->can('register'), 'obj->register == Foo::register ok';
-isnt obj->can('register'), Object::Container->can('register'), 'obj->register != Object::Container::register ok';;
+is obj->can('register'), Object::Container->can('register'), 'obj->register == Object::Container::register ok';;
use Bar 'obj_clean';
diff -Nur Object-Container-0.11.orig/t/no_clean/Exporter/AutoClean.pm Object-Container-0.11/t/no_clean/Exporter/AutoClean.pm
--- Object-Container-0.11.orig/t/no_clean/Exporter/AutoClean.pm 2010-10-06 09:50:22.000000000 +0900
+++ Object-Container-0.11/t/no_clean/Exporter/AutoClean.pm 2010-10-20 21:03:24.000000000 +0900
@@ -1,2 +1 @@
-die "Can't locale Exporter/AutoClean.pm";
-
+no Exporter::AutoClean;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment