Parent

Included Modules

Slop::Commands

Attributes

arguments[R]
commands[R]
config[R]

Public Class Methods

new(config = {}, &block) click to toggle source

Create a new instance of Slop::Commands and optionally build Slop instances via a block. Any configuration options used in this method will be the default configuration options sent to each Slop object created.

config - An optional configuration Hash. block - Optional block used to define commands.

Examples:

commands = Slop::Commands.new do
  on :new do
    on '-o', '--outdir=', 'The output directory'
    on '-v', '--verbose', 'Enable verbose mode'
  end

  on :generate do
    on '--assets', 'Generate assets', :default => true
  end

  global do
    on '-D', '--debug', 'Enable debug mode', :default => false
  end
end

commands[:new].class #=> Slop
commands.parse
# File lib/slop/commands.rb, line 36
def initialize(config = {}, &block)
  @config = config
  @commands = {}
  @banner = nil
  @triggered_command = nil

  if block_given?
    block.arity == 1 ? yield(self) : instance_eval(&block)
  end
end

Public Instance Methods

[](key) click to toggle source

Fetch the instance of Slop tied to a command.

key - The String or Symbol key used to locate this command.

Returns the Slop instance if this key is found, nil otherwise.

# File lib/slop/commands.rb, line 93
def [](key)
  commands[key.to_s]
end
Also aliased as: get
default(config = {}, &block) click to toggle source

Add a Slop instance used when no other commands exist.

config - A Hash of configuration options to pass to Slop. block - An optional block used to pass options to Slop.

Returns the newly created Slop instance mapped to default.

# File lib/slop/commands.rb, line 74
def default(config = {}, &block)
  on('default', config, &block)
end
each(&block) click to toggle source

Enumerable interface.

# File lib/slop/commands.rb, line 121
def each(&block)
  @commands.each(&block)
end
get(key) click to toggle source
Alias for: []
global(config = {}, &block) click to toggle source

Add a global Slop instance.

config - A Hash of configuration options to pass to Slop. block - An optional block used to pass options to Slop.

Returns the newly created Slop instance mapped to global.

# File lib/slop/commands.rb, line 84
def global(config = {}, &block)
  on('global', config, &block)
end
help() click to toggle source
Alias for: to_s
inspect() click to toggle source

Returns the inspection String.

# File lib/slop/commands.rb, line 152
def inspect
  "#<Slop::Commands #{config.inspect} #{commands.values.map(&:inspect)}>"
end
on(command, config = {}, &block) click to toggle source

Add a Slop instance for a specific command.

command - A String or Symbol key used to identify this command. config - A Hash of configuration options to pass to Slop. block - An optional block used to pass options to Slop.

Returns the newly created Slop instance mapped to command.

# File lib/slop/commands.rb, line 64
def on(command, config = {}, &block)
  commands[command.to_s] = Slop.new(@config.merge(config), &block)
end
parse(items = ARGV) click to toggle source

Parse a list of items.

items - The Array of items to parse.

Returns the original Array of items.

# File lib/slop/commands.rb, line 116
def parse(items = ARGV)
  parse_items(items)
end
parse!(items = ARGV) click to toggle source

Parse a list of items, removing any options or option arguments found.

items - The Array of items to parse.

Returns the original Array of items with options removed.

# File lib/slop/commands.rb, line 130
def parse!(items = ARGV)
  parse_items(items, true)
end
present?(key) click to toggle source

Check for a command presence.

Examples:

cmds.parse %w( foo )
cmds.present?(:foo) #=> true
cmds.present?(:bar) #=> false

Returns true if the given key is present in the parsed arguments.

# File lib/slop/commands.rb, line 107
def present?(key)
  key.to_s == @triggered_command
end
to_hash() click to toggle source

Returns a nested Hash with Slop options and values. See Slop#to_hash.

# File lib/slop/commands.rb, line 135
def to_hash
  Hash[commands.map { |k, v| [k.to_sym, v.to_hash] }]
end
to_s() click to toggle source

Returns the help String.

# File lib/slop/commands.rb, line 140
def to_s
  defaults = commands.delete('default')
  globals = commands.delete('global')
  helps = commands.reject { |_, v| v.options.none? }
  helps.merge!('Global options' => globals.to_s) if globals
  helps.merge!('Other options' => defaults.to_s) if defaults
  banner = @banner ? "#{@banner}\n" : ""
  banner + helps.map { |key, opts| "  #{key}\n#{opts}" }.join("\n\n")
end
Also aliased as: help

[Validate]

Generated with the Darkfish Rdoc Generator 2.