aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorskv <skv@FreeBSD.org>2008-06-08 00:27:26 +0800
committerskv <skv@FreeBSD.org>2008-06-08 00:27:26 +0800
commit6d98d19ffafd79f16ab943f91d1ddf9ac5281c10 (patch)
tree30fd14285dd2277bc9344761f5db2f78d0d40332
parentffbf8ca638a340f5c1b175c30eed1360e0bdb70f (diff)
downloadfreebsd-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/Makefile1
-rw-r--r--devel/p5-MooseX-ClassAttribute/Makefile25
-rw-r--r--devel/p5-MooseX-ClassAttribute/distinfo3
-rw-r--r--devel/p5-MooseX-ClassAttribute/pkg-PM72
-rw-r--r--devel/p5-MooseX-ClassAttribute/pkg-descr6
-rw-r--r--devel/p5-MooseX-ClassAttribute/pkg-plist2
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