* changes for MooseX::IOC
Stevan Little [Fri, 4 May 2007 19:21:57 +0000 (19:21 +0000)]
* fixes in the MooseX::AttributeHelpers
* better errors in MooseX::Storage

Changes
README
lib/MooseX/Storage.pm
lib/MooseX/Storage/Engine.pm

diff --git a/Changes b/Changes
index 9e39cc1..629c2f3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,9 @@
 Revision history for MooseX-Storage
 
+0.02 
+    * MooseX::Storage::Engine
+      - better error reporting when cycles are found
+
 0.01  Mon. April 30, 2007
     This was Chris's idea originally (blame him), and 
     we expanded on it to create what you see here :)
diff --git a/README b/README
index f4dcf91..e8a2a3e 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-MooseX-Storage version 0.01
+MooseX-Storage version 0.02
 
 INSTALLATION
 
index 9585e5f..6d7f6e3 100644 (file)
@@ -4,7 +4,7 @@ use Moose qw(confess);
 
 use MooseX::Storage::Meta::Attribute::DoNotSerialize;
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
 sub import {
     my $pkg = caller();
index 50294c2..ec96c70 100644 (file)
@@ -2,7 +2,7 @@
 package MooseX::Storage::Engine;
 use Moose;
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
 # the class marker when 
 # serializing an object. 
@@ -68,7 +68,7 @@ sub collapse_attribute_value {
        # this might not be enough, we might 
        # need to make it possible for the 
        # cycle checker to return the value
-    $self->check_for_cycle_in_collapse($value) 
+    $self->check_for_cycle_in_collapse($attr, $value) 
         if ref $value;
        
     if (defined $value && $attr->has_type_constraint) {
@@ -85,7 +85,7 @@ sub expand_attribute_value {
 
        # NOTE:
        # (see comment in method above ^^)
-    $self->check_for_cycle_in_expansion($value) 
+    $self->check_for_cycle_in_expansion($attr, $value) 
         if ref $value;    
     
     if (defined $value && $attr->has_type_constraint) {
@@ -103,16 +103,20 @@ sub expand_attribute_value {
 # anyway.
 
 sub check_for_cycle_in_collapse {
-    my ($self, $value) = @_;
+    my ($self, $attr, $value) = @_;
     (!exists $self->seen->{$value})
-        || confess "Basic Engine does not support cycles";
+        || confess "Basic Engine does not support cycles in class(" 
+                 . ($attr->associated_metaclass->name) . ").attr("
+                 . ($attr->name) . ") with $value";
     $self->seen->{$value} = undef;
 }
 
 sub check_for_cycle_in_expansion {
-    my ($self, $value) = @_;
+    my ($self, $attr, $value) = @_;
     (!exists $self->seen->{$value})
-        || confess "Basic Engine does not support cycles";
+    || confess "Basic Engine does not support cycles in class(" 
+             . ($attr->associated_metaclass->name) . ").attr("
+             . ($attr->name) . ") with $value";
     $self->seen->{$value} = undef;
 }