moved all the metaclass cache stuff to Class::MOP so that we are not polluting the...
[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
f0480c45 62=item B<authority>
63
64=item B<identifier>
65
2243a22b 66=back
67
1a09d9cc 68=head1 AUTHORS
2243a22b 69
70Stevan Little E<lt>stevan@iinteractive.comE<gt>
71
1a09d9cc 72Yuval Kogman E<lt>nothingmuch@woobling.comE<gt>
73
2243a22b 74=head1 COPYRIGHT AND LICENSE
75
76Copyright 2006 by Infinity Interactive, Inc.
77
78L<http://www.iinteractive.com>
79
80This library is free software; you can redistribute it and/or modify
81it under the same terms as Perl itself.
82
83=cut