diff options
author | skv <skv@FreeBSD.org> | 2008-06-08 00:27:26 +0800 |
---|---|---|
committer | skv <skv@FreeBSD.org> | 2008-06-08 00:27:26 +0800 |
commit | 6d98d19ffafd79f16ab943f91d1ddf9ac5281c10 (patch) | |
tree | 30fd14285dd2277bc9344761f5db2f78d0d40332 | |
parent | ffbf8ca638a340f5c1b175c30eed1360e0bdb70f (diff) | |
download | freebsd-ports-gnome-6d98d19ffafd79f16ab943f91d1ddf9ac5281c10.tar.gz freebsd-ports-gnome-6d98d19ffafd79f16ab943f91d1ddf9ac5281c10.tar.zst freebsd-ports-gnome-6d98d19ffafd79f16ab943f91d1ddf9ac5281c10.zip |
Add p5-MooseX-ClassAttribute 0.04, declare class attributes Moose-style.
-rw-r--r-- | devel/Makefile | 1 | ||||
-rw-r--r-- | devel/p5-MooseX-ClassAttribute/Makefile | 25 | ||||
-rw-r--r-- | devel/p5-MooseX-ClassAttribute/distinfo | 3 | ||||
-rw-r--r-- | devel/p5-MooseX-ClassAttribute/pkg-PM | 72 | ||||
-rw-r--r-- | devel/p5-MooseX-ClassAttribute/pkg-descr | 6 | ||||
-rw-r--r-- | devel/p5-MooseX-ClassAttribute/pkg-plist | 2 |
6 files changed, 109 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile index 1da102977476..7414dd952da4 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -1457,6 +1457,7 @@ SUBDIR += p5-Module-Versions-Report SUBDIR += p5-Moose SUBDIR += p5-Moose-Policy + SUBDIR += p5-MooseX-ClassAttribute SUBDIR += p5-MooseX-IOC SUBDIR += p5-MooseX-Policy-SemiAffordanceAccessor SUBDIR += p5-MooseX-Singleton diff --git a/devel/p5-MooseX-ClassAttribute/Makefile b/devel/p5-MooseX-ClassAttribute/Makefile new file mode 100644 index 000000000000..990632e63996 --- /dev/null +++ b/devel/p5-MooseX-ClassAttribute/Makefile @@ -0,0 +1,25 @@ +# New ports collection makefile for: MooseX-ClassAttribute +# Date created: 07 Jun 2008 +# Whom: Sergey Skvortsov <skv@protey.ru> +# +# $FreeBSD$ +# + +PORTNAME= MooseX-ClassAttribute +PORTVERSION= 0.04 +CATEGORIES= devel perl5 +MASTER_SITES= CPAN +PKGNAMEPREFIX= p5- + +MAINTAINER= skv@FreeBSD.org +COMMENT= Declare class attributes Moose-style + +BUILD_DEPENDS= p5-Moose>=0.34:${PORTSDIR}/devel/p5-Moose \ + p5-Sub-Name>=0:${PORTSDIR}/devel/p5-Sub-Name +RUN_DEPENDS= ${BUILD_DEPENDS} + +PERL_MODBUILD= yes + +MAN3= MooseX::ClassAttribute.3 + +.include <bsd.port.mk> diff --git a/devel/p5-MooseX-ClassAttribute/distinfo b/devel/p5-MooseX-ClassAttribute/distinfo new file mode 100644 index 000000000000..9849201fe843 --- /dev/null +++ b/devel/p5-MooseX-ClassAttribute/distinfo @@ -0,0 +1,3 @@ +MD5 (MooseX-ClassAttribute-0.04.tar.gz) = f5b6ce4f196d1333443e9269b6ada91b +SHA256 (MooseX-ClassAttribute-0.04.tar.gz) = b92bdc230ccdc82131a7c237bfadd96f664487c81612b6ccb7fda4a01f4911fe +SIZE (MooseX-ClassAttribute-0.04.tar.gz) = 6991 diff --git a/devel/p5-MooseX-ClassAttribute/pkg-PM b/devel/p5-MooseX-ClassAttribute/pkg-PM new file mode 100644 index 000000000000..61de9ba7fa63 --- /dev/null +++ b/devel/p5-MooseX-ClassAttribute/pkg-PM @@ -0,0 +1,72 @@ +=head1 NAME + +MooseX::ClassAttribute - Declare class attributes Moose-style + +=head1 DESCRIPTION + +This module allows you to declare class attributes in exactly the same +way as you declare object attributes, except using C<class_has()> +instead of C<has()>. It is also possible to make these attributes +immutable (and faster) just as you can with normal Moose attributes. + +You can use any feature of Moose's attribute declarations, including +overriding a parent's attributes, delegation (C<handles>), and +attribute metaclasses, and it should just work. + +The accessors methods for class attribute may be called on the class +directly, or on objects of that class. Passing a class attribute to +the constructor will not set it. + +=head1 FUNCTIONS + +This class exports one function when you use it, C<class_has()>. This +works exactly like Moose's C<has()>, but it declares class attributes. + +One little nit is that if you include C<no Moose> in your class, you +won't remove the C<class_has()> function. To do that you must include +C<no MooseX::ClassAttribute> as well. + +If you want to use this module to create class attributes in I<other> +classes, you can call the C<process_class_attribute()> function like +this: + + MooseX::ClassAttribute::process_class_attribute( $package, ... ); + +The first argument is the package which will have the class attribute, +and the remaining arguments are the same as those passed to +C<class_has()>. + +=head2 Implementation and Immutability + +Underneath the hood, this class creates one new class for each class +which has class attributes and sets up delegating methods in the class +for which you're creating class attributes. You don't need to worry +about this too much, except when it comes to making a class immutable. + +Since the class attributes are not really stored in your class, you +need to make the containing class immutable as well as your own ... + + __PACKAGE__->meta()->make_immutable(); + MooseX::ClassAttribute::containing_class()->meta()->make_immutable(); + +I<This may change in the future!> + +=head1 AUTHOR + +Dave Rolsky, C<< <autarch@urth.org> >> + +=head1 BUGS + +Please report any bugs or feature requests to +C<bug-moosex-classattribute@rt.cpan.org>, or through the web interface +at L<http://rt.cpan.org>. I will be notified, and then you'll +automatically be notified of progress on your bug as I make changes. + +=head1 COPYRIGHT & LICENSE + +Copyright 2007 Dave Rolsky, All Rights Reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut diff --git a/devel/p5-MooseX-ClassAttribute/pkg-descr b/devel/p5-MooseX-ClassAttribute/pkg-descr new file mode 100644 index 000000000000..cfe915dc8a15 --- /dev/null +++ b/devel/p5-MooseX-ClassAttribute/pkg-descr @@ -0,0 +1,6 @@ +MooseX::ClassAttribute allows you to declare class attributes in exactly +the same way as you declare object attributes, except using class_has() +instead of has(). It is also possible to make these attributes +immutable (and faster) just as you can with normal Moose attributes. + +WWW: http://search.cpan.org/dist/MooseX-ClassAttribute/ diff --git a/devel/p5-MooseX-ClassAttribute/pkg-plist b/devel/p5-MooseX-ClassAttribute/pkg-plist new file mode 100644 index 000000000000..533b0599335b --- /dev/null +++ b/devel/p5-MooseX-ClassAttribute/pkg-plist @@ -0,0 +1,2 @@ +%%SITE_PERL%%/MooseX/ClassAttribute.pm +@dirrmtry %%SITE_PERL%%/MooseX |