Commit | Line | Data |
2243a22b |
1 | |
2 | package Class::MOP::Module; |
3 | |
4 | use strict; |
5 | use warnings; |
6 | |
7 | use Scalar::Util 'blessed'; |
8 | |
9d6dce77 |
9 | our $VERSION = '0.02'; |
f0480c45 |
10 | our $AUTHORITY = 'cpan:STEVAN'; |
2243a22b |
11 | |
12 | use base 'Class::MOP::Package'; |
13 | |
14 | # introspection |
15 | |
16 | sub meta { |
17 | require Class::MOP::Class; |
18 | Class::MOP::Class->initialize(blessed($_[0]) || $_[0]); |
19 | } |
20 | |
7f436b8c |
21 | sub version { |
22 | my $self = shift; |
58d75218 |
23 | ${$self->get_package_symbol('$VERSION')}; |
7f436b8c |
24 | } |
25 | |
f0480c45 |
26 | sub authority { |
27 | my $self = shift; |
28 | ${$self->get_package_symbol('$AUTHORITY')}; |
29 | } |
9d6dce77 |
30 | |
f0480c45 |
31 | sub identifier { |
32 | my $self = shift; |
33 | join '-' => ( |
34 | $self->name, |
35 | ($self->version || ()), |
36 | ($self->authority || ()), |
37 | ); |
38 | } |
9d6dce77 |
39 | |
2243a22b |
40 | 1; |
41 | |
42 | __END__ |
43 | |
44 | =pod |
45 | |
46 | =head1 NAME |
47 | |
48 | Class::MOP::Module - Module Meta Object |
49 | |
50 | =head1 SYNOPSIS |
51 | |
52 | =head1 DESCRIPTION |
53 | |
54 | =head1 METHODS |
55 | |
56 | =over 4 |
57 | |
58 | =item B<meta> |
59 | |
7f436b8c |
60 | =item B<version> |
61 | |
b9d9fc0b |
62 | This is a read-only attribute which returns the C<$VERSION> of the |
63 | package for the given instance. |
64 | |
f0480c45 |
65 | =item B<authority> |
66 | |
b9d9fc0b |
67 | This is a read-only attribute which returns the C<$AUTHORITY> of the |
68 | package for the given instance. |
69 | |
f0480c45 |
70 | =item B<identifier> |
71 | |
b9d9fc0b |
72 | This constructs a string of the name, version and authrity. |
73 | |
2243a22b |
74 | =back |
75 | |
1a09d9cc |
76 | =head1 AUTHORS |
2243a22b |
77 | |
78 | Stevan Little E<lt>stevan@iinteractive.comE<gt> |
79 | |
1a09d9cc |
80 | Yuval Kogman E<lt>nothingmuch@woobling.comE<gt> |
81 | |
2243a22b |
82 | =head1 COPYRIGHT AND LICENSE |
83 | |
84 | Copyright 2006 by Infinity Interactive, Inc. |
85 | |
86 | L<http://www.iinteractive.com> |
87 | |
88 | This library is free software; you can redistribute it and/or modify |
89 | it under the same terms as Perl itself. |
90 | |
91 | =cut |