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.
-
- (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)
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 |
- (Cri::Command) command
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.
129 130 131 |
# File 'lib/cri/command_dsl.rb', line 129 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.
95 96 97 98 |
# File 'lib/cri/command_dsl.rb', line 95 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.
146 147 148 |
# File 'lib/cri/command_dsl.rb', line 146 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.
113 114 115 |
# File 'lib/cri/command_dsl.rb', line 113 def required(short, long, desc, &block) self.add_option(short, long, desc, :required, block) end |
- (void) run(&block)
156 157 158 159 160 161 162 163 |
# File 'lib/cri/command_dsl.rb', line 156 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)
173 174 175 176 177 |
# File 'lib/cri/command_dsl.rb', line 173 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 |