class Pry::CLI

Manage the processing of command line options

Constants

NoOptionsError

Attributes

input_args[RW]

@return [Array<String>] The input array of strings to process

as CLI options.
option_processors[RW]

@return [Array] The Procs that process the parsed options.

options[RW]

@return [Proc] The Proc defining the valid command line options.

Public Class Methods

add_options(&block) click to toggle source

Add another set of CLI options (a Slop block)

# File lib/pry/cli.rb, line 22
def add_options(&block)
  if options
    old_options = options
    self.options = proc do
      instance_exec(&old_options)
      instance_exec(&block)
    end
  else
    self.options = block
  end

  self
end
add_plugin_options() click to toggle source

Bring in options defined in plugins

# File lib/pry/cli.rb, line 37
def add_plugin_options
  Pry.plugins.values.each do |plugin|
    plugin.load_cli_options
  end

  self
end
parse_options(args=ARGV.dup) click to toggle source
# File lib/pry/cli.rb, line 59
def parse_options(args=ARGV.dup)
  unless options
    raise NoOptionsError, "No command line options defined! Use Pry::CLI.add_options to add command line options."
  end

  self.input_args = args

  opts = Slop.parse!(args, :help => true, :multiple_switches => false, &options)

  # Option processors are optional.
  if option_processors
    option_processors.each { |processor| processor.call(opts) }
  end

  self
end
process_options(&block) click to toggle source

Add a block responsible for processing parsed options.

# File lib/pry/cli.rb, line 46
def process_options(&block)
  self.option_processors ||= []
  option_processors << block

  self
end
reset() click to toggle source

Clear `options` and `::option_processors`

# File lib/pry/cli.rb, line 54
def reset
  self.options           = nil
  self.option_processors = nil
end