our $VERSION = '0.20';
our $AUTHORITY = 'cpan:STEVAN';
+my @roles = ('MooseX::Getopt::Basic');
+if (HAVE_GLD) { push @roles, 'MooseX::Getopt::GLD' }
+
+with @roles;
+
has ARGV => (is => 'rw', isa => 'ArrayRef', metaclass => "NoGetopt");
has extra_argv => (is => 'rw', isa => 'ArrayRef', metaclass => "NoGetopt");
local @ARGV = @{ $params{params}{argv} || \@ARGV };
- my $use_gld = (HAVE_GLD && !$params{params}{disable_gld});
-
- my ( $opt_spec, $name_to_init_arg ) = ( $use_gld ? $class->_gld_spec(%params) : $class->_traditional_spec(%params) );
+ my ( $opt_spec, $name_to_init_arg ) = $class->_getopt_spec(%params);
# Get a clean copy of the original @ARGV
my $argv_copy = [ @ARGV ];
my ( $parsed_options, $usage ) = eval {
local $SIG{__WARN__} = sub { push @err, @_ };
- if ( $use_gld ) {
- return Getopt::Long::Descriptive::describe_options($class->_usage_format(%params), @$opt_spec);
- } else {
- my %options;
- Getopt::Long::GetOptions(\%options, @$opt_spec);
- return ( \%options, undef );
- }
+ return $class->_get_options(\%params, $opt_spec);
};
die join "", grep { defined } @err, $@ if @err or $@;
This returns the role meta object.
+=item B<HAVE_GLD>
+
+A constant for internal use.
+
=back
=head1 BUGS