diff options
author | John Mair <jrmair@gmail.com> | 2011-02-21 05:54:18 +1300 |
---|---|---|
committer | John Mair <jrmair@gmail.com> | 2011-02-21 05:54:18 +1300 |
commit | 22d31c0b92db2772acb53f817c0b2aa32793f351 (patch) | |
tree | 0d079807988e2040506022d705ddc80f862b87ef /bin | |
parent | 99c0cb3545c41f46c728b778bba3e411f0bb9868 (diff) | |
download | pry-22d31c0b92db2772acb53f817c0b2aa32793f351.tar.gz |
version 0.5.7, added Pry executable, pry --help at command line for more info
Diffstat (limited to 'bin')
-rw-r--r-- | bin/pry | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/bin/pry b/bin/pry new file mode 100644 index 00000000..6d2f0d18 --- /dev/null +++ b/bin/pry @@ -0,0 +1,63 @@ +#!/usr/bin/env ruby + +# (C) John Mair (banisterfiend) +# MIT license + +begin + require 'pry' +rescue LoadError + require 'rubygems' + require 'pry' +end +require "optparse" + +# defaults +options = { + :context => TOPLEVEL_BINDING, + :loadrc => true +} + +OptionParser.new do |opts| + opts.banner = %{Usage: pry [OPTIONS] +Start a Pry session. +See: `https://github.com/banister` for more information. +-- +} + opts.on("-r", "--require FILE", "`require` a Ruby script at startup.") do |file| + require file + end + + opts.on("-e", "--exec CODE", "A line of Ruby code to execute in context before the session starts.") do |code| + options[:code] = code + end + + opts.on("-f", "Suppress loading of ~/.pryrc") do + options[:loadrc] = false + end + + opts.on("-v", "--version", "Display the Pry version.") do + puts "Pry version #{Pry::VERSION} on Ruby #{RUBY_VERSION}" + exit + end + + opts.on("-c", "--context CONTEXT", + "Start the session in the specified context. Equivalent to `context.pry` in a session.") do |context| + options[:context] = Pry.binding_for(eval(context)) + end + + opts.on_tail("-h", "--help", "This message.") do + puts opts + exit + end +end.parse! + +rcpath = File.expand_path("~/.pryrc") + +# load ~/.pryrc, if not suppressed with -f option +load rcpath if File.exists?(rcpath) && options[:loadrc] + +# execute line of code, if provided with -e option +options[:context].eval(options[:code]) if options[:code] + +# start the session +options[:context].pry |