Getopt-Long-Descriptive
view release on metacpan or search on metacpan
lib/Getopt/Long/Descriptive/Opts.pm view on Meta::CPAN
12345678910111213141516use
strict;
use
warnings;
package
Getopt::Long::Descriptive::Opts 0.116;
# ABSTRACT: object representing command line switches
#pod =head1 DESCRIPTION
#pod
#pod This class is the base class of all C<$opt> objects returned by
#pod L<Getopt::Long::Descriptive>. In general, you do not want to think about this
#pod class, look at it, or alter it. Seriously, it's pretty dumb.
#pod
#pod Every call to C<describe_options> will return a object of a new subclass of
#pod this class. It will have a method for the canonical name of each option
#pod possible given the option specifications.
lib/Getopt/Long/Descriptive/Opts.pm view on Meta::CPAN
585960616263646566676869707172737475767778
return
$meta
->{specified_opts}
if
$meta
->{specified_opts};
my
@keys
=
grep
{
$meta
->{
given
}{
$_
} } (
keys
%{
$meta
->{
given
} });
my
%opts
;
@opts
{
@keys
} =
@$self
{
@keys
};
$meta
->{specified_opts} = \
%opts
;
bless
$meta
->{specified_opts} =>
$class
;
weaken
$meta
->{specified_opts};
$meta
->{specified_opts};
}
#pod =head2 _complete_opts
#pod
#pod This method returns the opts object with all values, including those set by
#pod defaults. It is probably not going to be very often-used.
#pod
#pod =cut
lib/Getopt/Long/Descriptive/Opts.pm view on Meta::CPAN
119120121122123124125126127128129130131132133134135136137138
# the keys to generate a class, but was undef; this wasn't a problem, but
# broke tests of things that were relying on not-exists like tests of %$opt
# contents or MooseX::Getopt which wanted to use things as args for new --
# undef would not pass an Int TC. Easier to just do this. -- rjbs,
# 2009-11-27
delete
$copy
->{
$_
}
for
grep
{ !
defined
$copy
->{
$_
} }
keys
%$copy
;
my
$self
=
bless
$copy
=>
$new_class
;
$_CREATED_OPTS
{
$new_class
}{meta}{complete_opts} =
$self
;
# weaken $_CREATED_OPTS{ $new_class }{meta}{complete_opts};
return
$self
;
}
1;
__END__
=pod
( run in 0.374 second using v1.01-cache-2.11-cpan-bb97c1e446a )