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