Class: Cri::CommandDSL
- Inherits:
-
Object
- Object
- Cri::CommandDSL
- Defined in:
- lib/cri/command_dsl.rb
Overview
The command DSL is a class that is used for building and modifying commands.
Instance Method Summary (collapse)
-
- (void) aliases(*args)
Sets the command aliases.
-
- (void) be_hidden
Marks the command as hidden.
-
- (Cri::Command) command
The built command.
-
- (void) description(arg)
Sets the command description.
-
- (void) flag(short, long, desc, &block)
(also: #forbidden)
Adds a new option with a forbidden argument to the command.
-
- (CommandDSL) initialize(command = nil)
constructor
A new instance of CommandDSL.
-
- (void) name(arg)
Sets the command name.
-
- (void) option(short, long, desc, params = {}, &block)
(also: #opt)
Adds a new option to the command.
-
- (void) optional(short, long, desc, &block)
Adds a new option with an optional argument to the command.
-
- (void) required(short, long, desc, &block)
Adds a new option with a required argument to the command.
-
- (void) run(&block)
Sets the run block to the given block.
-
- (void) runner(klass)
Defines the runner class for this command.
-
- (void) subcommand(command = nil, &block)
Adds a subcommand to the current command.
-
- (void) summary(arg)
Sets the command summary.
-
- (void) usage(arg)
Sets the command usage.
Constructor Details
- (CommandDSL) initialize(command = nil)
Returns a new instance of CommandDSL
11 12 13 |
# File 'lib/cri/command_dsl.rb', line 11 def initialize(command=nil) @command = command || Cri::Command.new end |
Instance Method Details
- (void) aliases(*args)
This method returns an undefined value.
Sets the command aliases.
50 51 52 |
# File 'lib/cri/command_dsl.rb', line 50 def aliases(*args) @command.aliases = args.flatten.map { |a| a.to_s } end |
- (void) be_hidden
This method returns an undefined value.
Marks the command as hidden. Hidden commands do not show up in the list of
subcommands of the parent command, unless --verbose is passed (or
:verbose => true
is passed to the Cri::Command#help method). This can
be used to mark commands as deprecated.
88 89 90 |
# File 'lib/cri/command_dsl.rb', line 88 def be_hidden @command.hidden = true end |
- (Cri::Command) command
Returns The built command
16 17 18 |
# File 'lib/cri/command_dsl.rb', line 16 def command @command end |
- (void) description(arg)
This method returns an undefined value.
Sets the command description.
68 69 70 |
# File 'lib/cri/command_dsl.rb', line 68 def description(arg) @command.description = arg end |
- (void) flag(short, long, desc, &block) Also known as: forbidden
This method returns an undefined value.
Adds a new option with a forbidden argument to the command. If a block is given, it will be executed when the option is successfully parsed.
139 140 141 |
# File 'lib/cri/command_dsl.rb', line 139 def flag(short, long, desc, &block) self.add_option(short, long, desc, :forbidden, block) end |
- (void) name(arg)
This method returns an undefined value.
Sets the command name.
41 42 43 |
# File 'lib/cri/command_dsl.rb', line 41 def name(arg) @command.name = arg end |
- (void) option(short, long, desc, params = {}, &block) Also known as: opt
This method returns an undefined value.
Adds a new option to the command. If a block is given, it will be executed when the option is successfully parsed.
105 106 107 108 |
# File 'lib/cri/command_dsl.rb', line 105 def option(short, long, desc, params={}, &block) requiredness = params[:argument] || :forbidden self.add_option(short, long, desc, requiredness, block) end |
- (void) optional(short, long, desc, &block)
This method returns an undefined value.
Adds a new option with an optional argument to the command. If a block is given, it will be executed when the option is successfully parsed.
156 157 158 |
# File 'lib/cri/command_dsl.rb', line 156 def optional(short, long, desc, &block) self.add_option(short, long, desc, :optional, block) end |
- (void) required(short, long, desc, &block)
This method returns an undefined value.
Adds a new option with a required argument to the command. If a block is given, it will be executed when the option is successfully parsed.
123 124 125 |
# File 'lib/cri/command_dsl.rb', line 123 def required(short, long, desc, &block) self.add_option(short, long, desc, :required, block) end |
- (void) run(&block)
166 167 168 169 170 171 172 173 |
# File 'lib/cri/command_dsl.rb', line 166 def run(&block) unless block.arity != 2 || block.arity != 3 raise ArgumentError, "The block given to Cri::Command#run expects two or three args" end @command.block = block end |
- (void) runner(klass)
183 184 185 186 187 |
# File 'lib/cri/command_dsl.rb', line 183 def runner(klass) run do |opts, args, cmd| klass.new(opts, args, cmd).call end end |
- (void) subcommand(command = nil, &block)
This method returns an undefined value.
Adds a subcommand to the current command. The command can either be given explicitly, or a block can be given that defines the command.
28 29 30 31 32 33 34 |
# File 'lib/cri/command_dsl.rb', line 28 def subcommand(command=nil, &block) if command.nil? command = Cri::Command.define(&block) end @command.add_command(command) end |
- (void) summary(arg)
This method returns an undefined value.
Sets the command summary.
59 60 61 |
# File 'lib/cri/command_dsl.rb', line 59 def summary(arg) @command.summary = arg end |
- (void) usage(arg)
This method returns an undefined value.
Sets the command usage. The usage should not include the “usage:” prefix, nor should it include the command names of the supercommand.
78 79 80 |
# File 'lib/cri/command_dsl.rb', line 78 def usage(arg) @command.usage = arg end |