use Scalar::Util 'blessed';
our $VERSION = '0.02';
-#our $AUTHORITY = {
-# cpan => 'STEVAN',
-# mailto => 'stevan@iinteractive.com',
-# http => '//www.iinteractive.com/'
-#};
+our $AUTHORITY = 'cpan:STEVAN';
use base 'Class::MOP::Package';
Class::MOP::Class->initialize(blessed($_[0]) || $_[0]);
}
-# QUESTION:
-# can the version be an attribute of the
-# module? I think it should be, but we need
-# to somehow assure that it always is stored
-# in the symbol table instead of being stored
-# into the instance structure itself
-
sub version {
my $self = shift;
${$self->get_package_symbol('$VERSION')};
}
-#sub authority {
-# my $self = shift;
-# $self->get_package_symbol('$AUTHORITY');
-#}
+sub authority {
+ my $self = shift;
+ ${$self->get_package_symbol('$AUTHORITY')};
+}
+sub identifier {
+ my $self = shift;
+ join '-' => (
+ $self->name,
+ ($self->version || ()),
+ ($self->authority || ()),
+ );
+}
1;
=item B<version>
+This is a read-only attribute which returns the C<$VERSION> of the
+package for the given instance.
+
+=item B<authority>
+
+This is a read-only attribute which returns the C<$AUTHORITY> of the
+package for the given instance.
+
+=item B<identifier>
+
+This constructs a string of the name, version and authrity.
+
=back
=head1 AUTHORS