package MooseX::MetaDescription::Description;
use Moose;
-# need the type loaded ...
-use MooseX::MetaDescription::Meta::Role::HasMetaDescription;
-
our $VERSION = '0.01';
our $AUTHORITY = 'cpan:STEVAN';
has 'descriptor' => (
is => 'ro',
- does => 'MooseX::MetaDescription::Meta::Role::HasMetaDescription',
+ does => 'MooseX::MetaDescription::Meta::Trait',
weak_ref => 1,
required => 1,
);
+++ /dev/null
-package MooseX::MetaDescription::Description::Attribute;
-use Moose;
-
-our $VERSION = '0.01';
-our $AUTHORITY = 'cpan:STEVAN';
-
-extends 'MooseX::MetaDescription::Description';
-
-no Moose; 1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-MooseX::MetaDescription::Description::Attribute - A Moosey solution to this problem
-
-=head1 SYNOPSIS
-
- use MooseX::MetaDescription::Description::Attribute;
-
-=head1 DESCRIPTION
-
-=head1 METHODS
-
-=over 4
-
-=item B<>
-
-=back
-
-=head1 BUGS
-
-All complex software has bugs lurking in it, and this module is no
-exception. If you find a bug please either email me, or add the bug
-to cpan-RT.
-
-=head1 AUTHOR
-
-Stevan Little E<lt>stevan.little@iinteractive.comE<gt>
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2008 Infinity Interactive, Inc.
-
-L<http://www.iinteractive.com>
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
+++ /dev/null
-package MooseX::MetaDescription::Description::Class;
-use Moose;
-
-our $VERSION = '0.01';
-our $AUTHORITY = 'cpan:STEVAN';
-
-extends 'MooseX::MetaDescription::Description';
-
-no Moose; 1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-MooseX::MetaDescription::Description::Class - A Moosey solution to this problem
-
-=head1 SYNOPSIS
-
- use MooseX::MetaDescription::Description::Class;
-
-=head1 DESCRIPTION
-
-=head1 METHODS
-
-=over 4
-
-=item B<>
-
-=back
-
-=head1 BUGS
-
-All complex software has bugs lurking in it, and this module is no
-exception. If you find a bug please either email me, or add the bug
-to cpan-RT.
-
-=head1 AUTHOR
-
-Stevan Little E<lt>stevan.little@iinteractive.comE<gt>
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2008 Infinity Interactive, Inc.
-
-L<http://www.iinteractive.com>
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
package MooseX::MetaDescription::Meta::Attribute::Trait;
use Moose::Role;
-use MooseX::MetaDescription::Description::Attribute;
-
our $VERSION = '0.01';
our $AUTHORITY = 'cpan:STEVAN';
-with 'MooseX::MetaDescription::Meta::Role::HasMetaDescription';
+has 'description' => (
+ is => 'ro',
+ isa => 'HashRef',
+ lazy => 1,
+ default => sub { +{} },
+);
+
+has 'metadescription_classname' => (
+ is => 'ro',
+ isa => 'Str',
+ default => sub {
+ 'MooseX::MetaDescription::Description'
+ }
+);
-has '+metadescription_classname' => (
- default => sub {
- 'MooseX::MetaDescription::Description::Attribute'
+has 'metadescription' => (
+ is => 'ro',
+ isa => 'MooseX::MetaDescription::Description',
+ lazy => 1,
+ default => sub {
+ my $self = shift;
+ $self->metadescription_classname->new(
+ %{ $self->description },
+ descriptor => $self,
+ )
},
);
package MooseX::MetaDescription::Meta::Class;
use Moose;
-use MooseX::MetaDescription::Description::Class;
-
our $VERSION = '0.01';
our $AUTHORITY = 'cpan:STEVAN';
extends 'Moose::Meta::Class';
- with 'MooseX::MetaDescription::Meta::Role::HasMetaDescription';
-
-has '+metadescription_classname' => (
- default => sub {
- 'MooseX::MetaDescription::Description::Class'
- },
-);
+ with 'MooseX::MetaDescription::Meta::Attribute::Trait';
no Moose; 1;
+++ /dev/null
-package MooseX::MetaDescription::Meta::Role::HasMetaDescription;
-use Moose::Role;
-
-our $VERSION = '0.01';
-our $AUTHORITY = 'cpan:STEVAN';
-
-has 'description' => (
- is => 'ro',
- isa => 'HashRef',
- lazy => 1,
- default => sub { +{} },
-);
-
-has 'metadescription_classname' => (
- is => 'ro',
- isa => 'Str',
-);
-
-has 'metadescription' => (
- is => 'ro',
- isa => 'MooseX::MetaDescription::Description',
- lazy => 1,
- default => sub {
- my $self = shift;
-
- # TODO: handle traits ...
-
- $self->metadescription_classname->new(
- %{ $self->description },
- descriptor => $self,
- )
- },
-);
-
-no Moose::Role; 1;
-
-__END__
-
-=pod
-
-=head1 NAME
-
-MooseX::MetaDescription::Meta::Role::HasMetaDescription - A Moosey solution to this problem
-
-=head1 SYNOPSIS
-
- use MooseX::MetaDescription::Meta::Role::HasMetaDescription;
-
-=head1 DESCRIPTION
-
-=head1 METHODS
-
-=over 4
-
-=item B<>
-
-=back
-
-=head1 BUGS
-
-All complex software has bugs lurking in it, and this module is no
-exception. If you find a bug please either email me, or add the bug
-to cpan-RT.
-
-=head1 AUTHOR
-
-Stevan Little E<lt>stevan.little@iinteractive.comE<gt>
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright 2008 Infinity Interactive, Inc.
-
-L<http://www.iinteractive.com>
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut