Mojo::Command(3p)     User Contributed Perl Documentation    Mojo::Command(3p)



NAME
       Mojo::Command - Command Base Class

SYNOPSIS
         # Camel case command name
         package Mojo::Command::Mycommand;

         # Subclass
         use Mojo::Base 'Mojo::Command';

         # Take care of command line options
         use Getopt::Long 'GetOptions';

         # Short description
         has description => <<'EOF';
         My first Mojo command.
         EOF

         # Short usage message
         has usage => <<"EOF";
         usage: $0 mycommand [OPTIONS]

         These options are available:
           --something   Does something.
         EOF

         # <suitable Futurama quote here>
         sub run {
           my $self = shift;

           # Handle options
           local @ARGV = @_ if @_;
           GetOptions('something' => sub { $something = 1 });

           # Magic here! :)
         }

DESCRIPTION
       Mojo::Command is an abstract base class for Mojo commands.

       See Mojolicious::Commands for a list of commands that are available by
       default.

ATTRIBUTES
       Mojo::Command implements the following attributes.

   "description"
         my $description = $command->description;
         $command        = $command->description('Foo!');

       Short description of command, used for the command list.

   "hint"
         my $hint  = $commands->hint;
         $commands = $commands->hint('Foo!');

       Short hint shown after listing available commands.

   "message"
         my $message = $commands->message;
         $commands   = $commands->message('Hello World!');

       Short usage message shown before listing available commands.

   "namespaces"
         my $namespaces = $commands->namespaces;
         $commands      = $commands->namespaces(['Mojolicious::Commands']);

       Namespaces to search for available commands, defaults to Mojo::Command.

   "quiet"
         my $quiet = $command->quiet;
         $command  = $command->quiet(1);

       Limited command output.

   "usage"
         my $usage = $command->usage;
         $command  = $command->usage('Foo!');

       Usage information for command, used for the help screen.

METHODS
       Mojo::Command inherits all methods from Mojo::Base and implements the
       following new ones.

   "chmod_file"
         $command = $command->chmod_file('/foo/bar.txt', 0644);

       Portably change mode of a file.

   "chmod_rel_file"
         $command = $command->chmod_rel_file('foo/bar.txt', 0644);

       Portably change mode of a relative file.

   "class_to_file"
         my $file = $command->class_to_file('Foo::Bar');

       Convert a class name to a file.

         FooBar -> foo_bar

   "class_to_path"
         my $path = $command->class_to_path('Foo::Bar');

       Convert class name to path.

         Foo::Bar -> Foo/Bar.pm

   "create_dir"
         $command = $command->create_dir('/foo/bar/baz');

       Portably create a directory.

   "create_rel_dir"
         $command = $command->create_rel_dir('foo/bar/baz');

       Portably create a relative directory.

   "detect"
         my $env = $commands->detect;
         my $env = $commands->detect($guess);

       Try to detect environment.

   "get_all_data"
         my $all = $command->get_all_data;
         my $all = $command->get_all_data('Some::Class');

       Extract all embedded files from the "DATA" section of a class.

   "get_data"
         my $data = $command->get_data('foo_bar');
         my $data = $command->get_data('foo_bar', 'Some::Class');

       Extract embedded file from the "DATA" section of a class.

   "help"
         $command->help;

       Print usage information for command.

   "rel_dir"
         my $path = $command->rel_dir('foo/bar');

       Portably generate an absolute path from a relative UNIX style path.

   "rel_file"
         my $path = $command->rel_file('foo/bar.txt');

       Portably generate an absolute path from a relative UNIX style path.

   "render_data"
         my $data = $command->render_data('foo_bar', @arguments);

       Render a template from the "DATA" section of the command class.

   "render_to_file"
         $command = $command->render_to_file('foo_bar', '/foo/bar.txt');

       Render a template from the "DATA" section of the command class to a
       file.

   "render_to_rel_file"
         $command = $command->render_to_rel_file('foo_bar', 'foo/bar.txt');

       Portably render a template from the "DATA" section of the command class
       to a relative file.

   "run"
         $commands->run;
         $commands->run(@ARGV);

       Load and run commands.

   "start"
         Mojo::Command->start;
         Mojo::Command->start(@ARGV);

       Start the command line interface.

   "write_file"
         $command = $command->write_file('/foo/bar.txt', 'Hello World!');

       Portably write text to a file.

   "write_rel_file"
         $command = $command->write_rel_file('foo/bar.txt', 'Hello World!');

       Portably write text to a relative file.

SEE ALSO
       Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.



perl v5.12.2                      2011-02-17                 Mojo::Command(3p)
