Implement make_mutable :)
[gitmo/Mouse.git] / lib / Mouse / Meta / Class.pm
index 3138726..08bb9d3 100644 (file)
@@ -226,14 +226,22 @@ sub clone_instance {
     return $class->clone_object($instance, %params);
 }
 
-sub make_immutable {
-    my $self = shift;
-    my %args = (
+
+sub immutable_options {
+    my ( $self, @args ) = @_;
+
+    return (
         inline_constructor => 1,
         inline_destructor  => 1,
         constructor_name   => 'new',
-        @_,
+        @args,
     );
+}
+
+
+sub make_immutable {
+    my $self = shift;
+    my %args = $self->immutable_options(@_);
 
     $self->{is_immutable}++;
 
@@ -256,7 +264,11 @@ sub make_immutable {
     return 1;
 }
 
-sub make_mutable { not_supported }
+sub make_mutable {
+    my($self) = @_;
+    $self->{is_immutable} = 0;
+    return;
+}
 
 sub is_immutable {  $_[0]->{is_immutable} }
 sub is_mutable   { !$_[0]->{is_immutable} }
@@ -450,7 +462,7 @@ Mouse::Meta::Class - The Mouse class metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 0.40_08
+This document describes Mouse version 0.44
 
 =head1 METHODS