* MooseX::Getopt::Parser::Descriptive: Getopt::Long::Descriptive::Usage object
[gitmo/MooseX-Getopt.git] / lib / MooseX / Getopt / Parser / Descriptive.pm
index ff05c8f..bc4bf57 100644 (file)
@@ -25,6 +25,13 @@ has format => (
     default => 'usage: %c %o',
 );
 
+# Usage object
+has usage => (
+    is => 'rw',
+    isa => 'Maybe[Getopt::Long::Descriptive::Usage]',
+    predicate => 'has_usage',
+);
+
 
 sub build_options {
     my $self = shift;
@@ -89,11 +96,14 @@ sub build_options {
         $getopt->extra_argv( $extra_argv );
     };
 
+    # Store usage object
+    $self->usage( $usage );
+
     # Convert cmd_flags back to names in options hashref
     $new_options = { map { $cmd_flags_to_names{$_} => $new_options->{$_} } keys %$new_options };
 
-    # Include old options and usage object
-    $new_options = { usage => $usage, %$options, %$new_options };
+    # Include old options
+    $new_options = { %$options, %$new_options };
 
     $getopt->status( ! $warnings );
     $getopt->options( $new_options );