misc crap
[gitmo/MooseX-Getopt.git] / lib / MooseX / Getopt / OptionTypeMap.pm
index 10de77f..3d94c78 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};
@@ -81,6 +90,8 @@ These are all class methods and should be called as such.
 
 =item B<add_option_type_to_map ($type_name, $option_spec)>
 
+=item B<meta>
+
 =back
 
 =head1 BUGS