Default parameters to read-only
[gitmo/MooseX-Role-Parameterized.git] / lib / MooseX / Role / Parameterized / Meta / Parameter.pm
index 1ae50b7..a37f643 100644 (file)
@@ -2,6 +2,20 @@ package MooseX::Role::Parameterized::Meta::Parameter;
 use Moose;
 extends 'Moose::Meta::Attribute';
 
+# This doesn't actually do anything because _process_options does not consult
+# the default value of "is". hrm.
+has '+is' => (
+    default => 'ro',
+);
+
+around _process_options => sub {
+    my $orig = shift;
+    my ($class, $name, $options) = @_;
+
+    $options->{is} ||= 'ro';
+
+    $orig->(@_);
+};
 
 __PACKAGE__->meta->make_immutable(
     inline_constructor => 1,