some helpful errors added
Stevan Little [Tue, 3 Jul 2007 21:02:30 +0000 (21:02 +0000)]
ChangeLog
README
lib/MooseX/Getopt.pm
lib/MooseX/Getopt/OptionTypeMap.pm

index 1615caa..0ac67bd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 Revision history for Perl extension MooseX-Getopt
 
+0.05 
+    * MooseX::Getopt::OptionTypeMap
+      - added some checks to make sure that the type 
+        constraints are found properly
+
 0.04 Tues. June 26, 2007
     * MooseX::Getopt::OptionTypeMap
       - Added support for subtype constraint inference
diff --git a/README b/README
index a202abc..e91448f 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-MooseX::Getopt version 0.04
+MooseX::Getopt version 0.05
 ===========================
 
 See the individual module documentation for more information
index 6e5ead6..b9a5a1d 100644 (file)
@@ -7,7 +7,7 @@ use Getopt::Long ();
 use MooseX::Getopt::OptionTypeMap;
 use MooseX::Getopt::Meta::Attribute;
 
-our $VERSION   = '0.04';
+our $VERSION   = '0.05';
 our $AUTHORITY = 'cpan:STEVAN';
 
 has ARGV       => (is => 'rw', isa => 'ArrayRef');
index 10de77f..d56e479 100644 (file)
@@ -4,7 +4,7 @@ package MooseX::Getopt::OptionTypeMap;
 use Moose 'confess';
 use Moose::Util::TypeConstraints 'find_type_constraint';
 
-our $VERSION   = '0.02';
+our $VERSION   = '0.03';
 our $AUTHORITY = 'cpan:STEVAN';
 
 my %option_type_map = (
@@ -21,6 +21,10 @@ sub has_option_type {
     return 1 if exists $option_type_map{$type_name};
 
     my $current = find_type_constraint($type_name);
+    
+    (defined $current)
+        || confess "Could not find the type constraint for '$type_name'";
+    
     while (my $parent = $current->parent) {
         return 1 if exists $option_type_map{$parent->name};
         $current = $parent;
@@ -31,10 +35,15 @@ sub has_option_type {
 
 sub get_option_type {
     my (undef, $type_name) = @_;
+    
     return $option_type_map{$type_name}
         if exists $option_type_map{$type_name};
 
     my $current = find_type_constraint($type_name);
+    
+    (defined $current)
+        || confess "Could not find the type constraint for '$type_name'";    
+    
     while (my $parent = $current->parent) {
         return $option_type_map{$parent->name}
             if exists $option_type_map{$parent->name};