Class: Cri::CommandDSL

Inherits:
Object
  • Object
show all
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

Constructor Details

#initialize(command = nil) ⇒ CommandDSL

Returns a new instance of CommandDSL.

Parameters:

  • command (Cri::Command, nil) (defaults to: nil)

    The command to modify, or nil if a new command should be created



11
12
13
# File 'lib/cri/command_dsl.rb', line 11

def initialize(command=nil)
  @command = command || Cri::Command.new
end

Instance Method Details

#aliases(*args) ⇒ void

This method returns an undefined value.

Sets the command aliases.

Parameters:

  • args (String, Symbol, Array)

    The new 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

#commandCri::Command

Returns The built command.

Returns:



16
17
18
# File 'lib/cri/command_dsl.rb', line 16

def command
  @command
end

#description(arg) ⇒ void

This method returns an undefined value.

Sets the command description.

Parameters:

  • arg (String)

    The new command description



68
69
70
# File 'lib/cri/command_dsl.rb', line 68

def description(arg)
  @command.description = arg
end

#flag(short, long, desc, &block) ⇒ void 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.

Parameters:

  • short (String, Symbol)

    The short option name

  • long (String, Symbol)

    The long option name

  • desc (String)

    The option description

See Also:

  • Cri::CommandDSL.{{#option}


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

#name(arg) ⇒ void

This method returns an undefined value.

Sets the command name.

Parameters:

  • arg (String)

    The new command name



41
42
43
# File 'lib/cri/command_dsl.rb', line 41

def name(arg)
  @command.name = arg
end

#option(short, long, desc, params = {}, &block) ⇒ void 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.

Parameters:

  • short (String, Symbol)

    The short option name

  • long (String, Symbol)

    The long option name

  • desc (String)

    The option description

  • params (Hash) (defaults to: {})

    a customizable set of options

Options Hash (params):

  • :argument (:forbidden, :required, :optional)

    Whether the argument is forbidden, required or optional



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

#optional(short, long, desc, &block) ⇒ void

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.

Parameters:

  • short (String, Symbol)

    The short option name

  • long (String, Symbol)

    The long option name

  • desc (String)

    The option description

See Also:

  • Cri::CommandDSL.{{#option}


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

#required(short, long, desc, &block) ⇒ void

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.

Parameters:

  • short (String, Symbol)

    The short option name

  • long (String, Symbol)

    The long option name

  • desc (String)

    The option description

See Also:

  • Cri::CommandDSL.{{#option}


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

#run(&block) ⇒ void

This method returns an undefined value.

Sets the run block to the given block. The given block should have two or three arguments (options, arguments, and optionally the command).



154
155
156
157
158
159
160
161
# File 'lib/cri/command_dsl.rb', line 154

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

#subcommand(command = nil, &block) ⇒ void

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.

Parameters:

  • command (Cri::Command, nil) (defaults to: nil)

    The command to add as a subcommand, or nil if the block should be used to define the command that will be added as a subcommand



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

#summary(arg) ⇒ void

This method returns an undefined value.

Sets the command summary.

Parameters:

  • arg (String)

    The new command summary



59
60
61
# File 'lib/cri/command_dsl.rb', line 59

def summary(arg)
  @command.summary = arg
end

#usage(arg) ⇒ void

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.

Parameters:

  • arg (String)

    The new command usage



78
79
80
# File 'lib/cri/command_dsl.rb', line 78

def usage(arg)
  @command.usage = arg
end