App-Framework
view release on metacpan or search on metacpan
lib/App/Framework/Feature/Pod.pm view on Meta::CPAN
sub get_synopsis
{
my $this = shift ;
my $synopsis = $this->app->synopsis() ;
if (!$synopsis)
{
my %opts = $this->app->options() ;
# start with basics
my $app = $this->app->name() ;
$synopsis = "$app [options] " ;
## Get args
my $names_aref = $this->app->feature('Args')->arg_names() ;
foreach my $arg_name (@$names_aref)
{
my $arg_entry_href = $this->app->feature('Args')->arg_entry($arg_name) ;
my $type = "" ;
if ($arg_entry_href->{'type'} eq 'f')
{
$type = "file" ;
}
if ($arg_entry_href->{'type'} eq 'd')
{
$type = "directory" ;
}
if ($type)
{
my $direction = "input " ;
if ($arg_entry_href->{'direction'} eq 'o')
{
$direction = "output " ;
}
$type = " ($direction $type)" ;
}
my $suffix = "" ;
if ($arg_entry_href->{'dest_type'})
{
$suffix = "(s)" ;
}
if ($arg_entry_href->{'optional'})
{
$synopsis .= 'I<[' ;
}
else
{
$synopsis .= 'B<' ;
}
$synopsis .= "{$arg_name$type$suffix}" ;
$synopsis .= ']' if $arg_entry_href->{'optional'} ;
$synopsis .= '> ' ;
}
# set our best guess
$this->app->synopsis($synopsis) ;
}
return $synopsis ;
}
# ============================================================================================
# PRIVATE METHODS
# ============================================================================================
# ============================================================================================
# END OF PACKAGE
=back
=head1 DIAGNOSTICS
Setting the debug flag to level 1 prints out (to STDOUT) some debug messages, setting it to level 2 prints out more verbose messages.
=head1 AUTHOR
Steve Price C<< <sdprice at cpan.org> >>
=head1 BUGS
None that I know of!
=cut
1;
__END__
( run in 0.993 second using v1.01-cache-2.11-cpan-39bf76dae61 )