Sha256: 1698f978af4ff3dca5a1e72a66e5756f319f2e144113501afd85c5d13d515e80

Contents?: true

Size: 1.57 KB

Versions: 4

Compression:

Stored size: 1.57 KB

Contents

#!/usr/bin/env ruby

# (C) John Mair (banisterfiend)
# MIT license

begin
  require 'pry'
rescue LoadError
  require 'rubygems'
  require 'pry'
end

opts = Slop.parse do
  banner %{Usage: pry [OPTIONS]
Start a Pry session.
See: `https://github.com/banister` for more information.
--
}

  on :e, :exec, "A line of code to execute in context before the session starts", true
  on :f, "Supress loading of ~/.pryrc"
  on "no-color", "Disable syntax highlighting for session"

  on "simple-prompt", "Enable simple prompt mode" do
    Pry.prompt = Pry::SIMPLE_PROMPT
  end

  on :r, :require, "`require` a Ruby script at startup", true do |file|
    require file
  end

  on :I, "Add a path to the $LOAD_PATH", true do |path|
    $LOAD_PATH << path
  end

  on :v, :version, "Display the Pry version" do
    puts "Pry version #{Pry::VERSION} on Ruby #{RUBY_VERSION}"
    exit
  end

  on(:c, :context,
    "Start the session in the specified context. Equivalent to `context.pry` in a session.",
    true,
    :default => "TOPLEVEL_BINDING"
    )

  on :h, :help, "This message" do
    puts help
    exit
  end
end

# invoked via cli
Pry.cli = true

class Pry::Commands
  command "reset", "Reset the REPL to a clean state." do
    output.puts "Pry reset."
    exec("pry")
  end
end

# load ~/.pryrc, if not suppressed with -f option
Pry.should_load_rc = !opts.f?

# create the actual context
context = Pry.binding_for(eval(opts[:context]))

# run code passed with `-e`, if there is any.
if opts.exec?
  Pry.new(:input => StringIO.new(opts[:exec]), :print => proc {}).rep(context)
end

# start the session
context.pry

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pry-0.8.1 bin/pry
pry-0.8.1-i386-mswin32 bin/pry
pry-0.8.1-i386-mingw32 bin/pry
pry-0.8.1-java bin/pry