blob: 9e9b1b78489421eb7e85eae203cba4254ec289cf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
Source: libex-monkeypatched-perl
Section: perl
Priority: optional
Build-Depends: @cdbs@, debhelper (>= 10~)
Maintainer: Debian Perl Group <pkg-perl-maintainers@lists.alioth.debian.org>
Uploaders: Jonas Smedegaard <dr@jones.dk>
Standards-Version: 3.9.6
Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libex-monkeypatched-perl
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-perl/packages/libex-monkeypatched-perl.git
Homepage: https://metacpan.org/release/ex-monkeypatched
Testsuite: autopkgtest-pkg-perl
Package: libex-monkeypatched-perl
Architecture: all
Depends: ${perl:Depends}, ${misc:Depends}, ${cdbs:Depends}
Enhances: ${cdbs:Enhances}
Description: experimental API for safe monkey-patching
The term "monkey patching" describes injecting additional methods into
a class whose implementation you don't control. If done without care,
this is dangerous; the problematic case arises when:
* You add a method to a class;
* A newer version of the monkey-patched class adds another method of
the same name
* And uses that new method in some other part of its own
implementation.
.
ex::monkeypatched lets you do this sort of monkey-patching safely:
before it injects a method into the target class, it checks whether the
class already has a method of the same name. If it finds such a
method, it throws an exception (at compile-time with respect to the
code that does the injection).
.
See <http://aaroncrane.co.uk/talks/monkey_patching_subclassing/> for
more details.
|