Fix immutability work with latest Moose (0.51), and require said Moose
Dave Rolsky [Fri, 27 Jun 2008 04:00:12 +0000 (04:00 +0000)]
ChangeLog
Makefile.PL
lib/MooseX/Singleton.pm
lib/MooseX/Singleton/Meta/Method/Constructor.pm

index 17167a1..2504855 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 Revision history for Perl extension MooseX-Singleton
 
+0.09 2008-06-27
+    - fix immutability to work with Moose 0.51 (Dave Rolsky)
+
 0.08 2008-05-24
     - fix make_immutable keyword in test (Sartak)
     - immutable singleton objects did not call triggers in the constructor (Dave Rolsky)
index 500ba0d..1780c74 100644 (file)
@@ -5,7 +5,7 @@ use inc::Module::Install;
 name 'MooseX-Singleton';
 all_from 'lib/MooseX/Singleton.pm';
 
-requires 'Moose' => '0.41';
+requires 'Moose' => '0.51';
 
 build_requires 'Test::More';
 build_requires 'Test::Exception';
index bf7168d..179e40d 100644 (file)
@@ -3,7 +3,7 @@ use Moose;
 use MooseX::Singleton::Object;
 use MooseX::Singleton::Meta::Class;
 
-our $VERSION = 0.08;
+our $VERSION = 0.09;
 
 sub import {
     my $caller = caller;
index be99947..c27085f 100644 (file)
@@ -22,9 +22,9 @@ sub initialize_body {
     $source .= "\n" . 'return $class->Moose::Object::new(@_)';
     $source .= "\n" . '    if $class ne \'' . $self->associated_metaclass->name . '\';';
 
-    $source .= "\n" . 'my %params = (scalar @_ == 1) ? %{$_[0]} : @_;';
+    $source .= "\n" . 'my $params = ' . $self->_generate_BUILDARGS('$class', '@_');
 
-    $source .= "\n" . 'my $instance = ' . $self->meta_instance->inline_create_instance('$class');
+    $source .= ";\n" . 'my $instance = ' . $self->meta_instance->inline_create_instance('$class');
 
     $source .= ";\n" . (join ";\n" => map {
         $self->_generate_slot_initializer($_)