lots of documentation changes, some refactoring too
[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
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 62This is a read-only attribute which returns the C<$VERSION> of the
63package for the given instance.
64
f0480c45 65=item B<authority>
66
b9d9fc0b 67This is a read-only attribute which returns the C<$AUTHORITY> of the
68package for the given instance.
69
f0480c45 70=item B<identifier>
71
b9d9fc0b 72This constructs a string of the name, version and authrity.
73
2243a22b 74=back
75
1a09d9cc 76=head1 AUTHORS
2243a22b 77
78Stevan Little E<lt>stevan@iinteractive.comE<gt>
79
1a09d9cc 80Yuval Kogman E<lt>nothingmuch@woobling.comE<gt>
81
2243a22b 82=head1 COPYRIGHT AND LICENSE
83
84Copyright 2006 by Infinity Interactive, Inc.
85
86L<http://www.iinteractive.com>
87
88This library is free software; you can redistribute it and/or modify
89it under the same terms as Perl itself.
90
91=cut