Index | index by Group | index by Distribution | index by Vendor | index by creation date | index by Name | Mirrors | Help | Search |
Name: perl-Devel-EnforceEncapsulation | Distribution: Fedora Project |
Version: 0.51 | Vendor: Fedora Project |
Release: 31.fc41 | Build date: Fri Jul 19 16:52:18 2024 |
Group: Unspecified | Build host: buildvm-x86-18.iad2.fedoraproject.org |
Size: 11816 | Source RPM: perl-Devel-EnforceEncapsulation-0.51-31.fc41.src.rpm |
Packager: Fedora Project | |
Url: https://metacpan.org/release/Devel-EnforceEncapsulation | |
Summary: Find access violations to blessed objects |
Encapsulation is the practice of creating subroutines to access the properties of a class instead of accessing those properties directly. The advantage of good encapsulation is that the author is permitted to change the internal implementation of a class without breaking its usage. Object-oriented programming in Perl is most commonly implemented via blessed hashes. This practice makes it easy for users of a class to violate encapsulation by simply accessing the hash values directly. Although less common, the same applies to classes implemented via blessed arrays, scalars, filehandles, etc. This module is a hack to block those direct accesses. If you try to access a hash value of an object from its own class, or a superclass or subclass, all goes well. If you try to access a hash value from any other package, an exception is thrown. The same applies to the scalar value of a blessed scalar, entry in a blessed array, etc. To be clear: this class is NOT intended for strict enforcement of encapsulation. If you want bullet-proof encapsulation, use inside-out objects or the like. Instead, this module is intended to be a development or debugging aid in catching places where direct access is used against classes implemented as blessed hashes. To repeat: the encapsulation enforced here is a hack and is easily circumvented. Please use this module for good (finding bugs), not evil (making life harder for downstream developers).
GPL-1.0-or-later OR Artistic-1.0-Perl
* Thu Jul 18 2024 Fedora Release Engineering <[email protected]> - 0.51-31 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Thu Jan 25 2024 Fedora Release Engineering <[email protected]> - 0.51-30 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sun Jan 21 2024 Fedora Release Engineering <[email protected]> - 0.51-29 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Thu Jul 20 2023 Fedora Release Engineering <[email protected]> - 0.51-28 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Fri Jan 20 2023 Fedora Release Engineering <[email protected]> - 0.51-27 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Fri Jul 22 2022 Fedora Release Engineering <[email protected]> - 0.51-26 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
/usr/share/doc/perl-Devel-EnforceEncapsulation /usr/share/doc/perl-Devel-EnforceEncapsulation/CHANGES /usr/share/doc/perl-Devel-EnforceEncapsulation/README /usr/share/licenses/perl-Devel-EnforceEncapsulation /usr/share/licenses/perl-Devel-EnforceEncapsulation/LICENSE /usr/share/man/man3/Devel::EnforceEncapsulation.3pm.gz /usr/share/perl5/vendor_perl/Devel /usr/share/perl5/vendor_perl/Devel/EnforceEncapsulation.pm
Generated by rpm2html 1.8.1
Fabrice Bellet, Fri Dec 13 03:04:50 2024