Kenichi Ishigaki > CLI-Dispatch-0.03 > CLI::Dispatch::Command

Download:
CLI-Dispatch-0.03.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Source   Latest Release: CLI-Dispatch-0.05

NAME ^

CLI::Dispatch::Command

SYNOPSIS ^

    package MyScript::Convert;

    use strict;
    use base 'CLI::Dispatch::Command';
    use Encode;

    sub options {qw( from=s to=s )}

    sub run {
      my ($self, @args) = @_;

      # this message will be printed when "verbose" option is set
      $self->log( debug => 'going to convert encoding' );

      my $decoded = decode( $self->option('from'), $args[0] );
      print encode( $self->option('to'), $decoded );
    }

    1;

    __END__

    =head1 NAME

    MyScript::Convert - this will be shown in a command list

    =head1 SYNOPSIS

    the following will be shown when you run the script
    with a "help" option/command.

DESCRIPTION ^

CLI::Dispatch::Command is a base class for an actual command. Basically, all you need to do is override the run method to let it do what you want, and optionally override the options method to provide option specifications for the command. Also, you are expected to write a decent pod for the command, which will be shown when you run a script with help option/command, or when you run it without any command.

METHODS ^

run

this is where you are expected to write what you want the command to do.

options

this is where you are expected to write an array of command-specific option specifications.

option

is a read-only accessor to the option of the name (returns an empty string if the option is not defined).

log, logger, logfile, logfilter

CLI::Dispatch uses Log::Dump as a logger, and the logger is enabled when the verbose option is set.

log takes a label and arbitrary messages (strings, references and objects), and dumps them to stderr by default.

  $self->log( label => @messages );

If you want to dump to a file, pass the file name to logfile, and if you want to dump only messages with selected labels, use logfilter. If you want to use other loggers like Log::Dispatch, pass its instance to logger.

See Log::Dump for detailed instrution.

new

creates a command object.

set_options

takes a hash of options from the dispatcher, and set them into the command object.

AUTHOR ^

Kenichi Ishigaki, <ishigaki@cpan.org>

COPYRIGHT AND LICENSE ^

Copyright (C) 2008 by Kenichi Ishigaki.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.