Dist tweaks; this commit is 0.01
[gitmo/MooseX-Role-Parameterized.git] / lib / MooseX / Role / Parameterized / Meta / Role / Parameterizable.pm
index 6aa19de..f76f296 100644 (file)
@@ -1,4 +1,3 @@
-#!/usr/bin/env perl
 package MooseX::Role::Parameterized::Meta::Role::Parameterizable;
 use Moose;
 extends 'Moose::Meta::Role';
@@ -27,12 +26,27 @@ has role_generator => (
 
 sub add_parameter {
     my $self = shift;
-    $self->parameter_metaclass->add_attribute(@_);
+    my $name = shift;
+
+    # need to figure out a plan for these guys..
+    confess "The parameter name ($name) is currently forbidden."
+        if $name eq 'alias'
+        || $name eq 'excludes';
+
+    $self->parameter_metaclass->add_attribute($name => @_);
 }
 
 sub construct_parameters {
     my $self = shift;
-    $self->parameter_metaclass->new_object(@_);
+    my %args = @_;
+
+    # need to figure out a plan for these guys..
+    for my $name ('alias', 'excludes') {
+        confess "The parameter name ($name) is currently forbidden."
+            if exists $args{$name};
+    }
+
+    $self->parameter_metaclass->new_object(\%args);
 }
 
 sub generate_role {
@@ -68,3 +82,19 @@ no Moose;
 
 1;
 
+__END__
+
+=head1 NAME
+
+MooseX::Role::Parameterized::Meta::Role::Parameterizable - metaclass for parameterizable roles
+
+=head1 DESCRIPTION
+
+This is the metaclass for parameteriz-able roles, roles that have their
+parameters currently unbound. These are the roles that you use L<Moose/with>,
+but instead of composing the parameteriz-able role, we construct a new
+parameteriz-ed role
+(L<MooseX::Role::Parameterized::Meta::Role::Parameterized>).
+
+=cut
+