2011-02-19 00:21:13 -05:00
|
|
|
# (C) John Mair (banisterfiend) 2011
|
2010-12-08 08:49:28 -05:00
|
|
|
# MIT License
|
|
|
|
|
2011-06-08 10:49:35 -04:00
|
|
|
require 'pp'
|
2011-06-11 06:44:30 -04:00
|
|
|
require 'pry/helpers/base_helpers'
|
2011-05-20 10:50:55 -04:00
|
|
|
class Pry
|
|
|
|
# The default hooks - display messages when beginning and ending Pry sessions.
|
|
|
|
DEFAULT_HOOKS = {
|
|
|
|
:before_session => proc do |out, target|
|
|
|
|
# ensure we're actually in a method
|
|
|
|
meth_name = target.eval('__method__')
|
|
|
|
file = target.eval('__FILE__')
|
|
|
|
|
|
|
|
# /unknown/ for rbx
|
|
|
|
if file !~ /(\(.*\))|<.*>/ && file !~ /__unknown__/ && file != "" && file != "-e"
|
|
|
|
Pry.run_command "whereami 5", :output => out, :show_output => true, :context => target, :commands => Pry::Commands
|
|
|
|
end
|
|
|
|
end
|
|
|
|
}
|
|
|
|
|
|
|
|
# The default prints
|
|
|
|
DEFAULT_PRINT = proc do |output, value|
|
2011-07-25 09:06:57 -04:00
|
|
|
begin
|
|
|
|
Helpers::BaseHelpers.stagger_output("=> #{Helpers::BaseHelpers.colorize_code(value.pretty_inspect)}", output)
|
|
|
|
rescue NoMethodError
|
|
|
|
output.puts "=> unknown"
|
|
|
|
end
|
2011-05-20 10:50:55 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
# Will only show the first line of the backtrace
|
|
|
|
DEFAULT_EXCEPTION_HANDLER = proc do |output, exception|
|
|
|
|
output.puts "#{exception.class}: #{exception.message}"
|
|
|
|
output.puts "from #{exception.backtrace.first}"
|
|
|
|
end
|
|
|
|
|
|
|
|
# The default prompt; includes the target and nesting level
|
|
|
|
DEFAULT_PROMPT = [
|
|
|
|
proc { |target_self, nest_level|
|
|
|
|
if nest_level == 0
|
|
|
|
"pry(#{Pry.view_clip(target_self)})> "
|
|
|
|
else
|
|
|
|
"pry(#{Pry.view_clip(target_self)}):#{Pry.view_clip(nest_level)}> "
|
|
|
|
end
|
|
|
|
},
|
|
|
|
|
|
|
|
proc { |target_self, nest_level|
|
|
|
|
if nest_level == 0
|
|
|
|
"pry(#{Pry.view_clip(target_self)})* "
|
|
|
|
else
|
|
|
|
"pry(#{Pry.view_clip(target_self)}):#{Pry.view_clip(nest_level)}* "
|
|
|
|
end
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
# A simple prompt - doesn't display target or nesting level
|
2011-06-11 06:44:30 -04:00
|
|
|
SIMPLE_PROMPT = [proc { ">> " }, proc { " | " }]
|
2011-05-20 10:50:55 -04:00
|
|
|
|
|
|
|
SHELL_PROMPT = [
|
|
|
|
proc { |target_self, _| "pry #{Pry.view_clip(target_self)}:#{Dir.pwd} $ " },
|
|
|
|
proc { |target_self, _| "pry #{Pry.view_clip(target_self)}:#{Dir.pwd} * " }
|
|
|
|
]
|
|
|
|
|
|
|
|
end
|
|
|
|
|
2010-12-18 06:21:58 -05:00
|
|
|
require "method_source"
|
2011-03-02 06:18:26 -05:00
|
|
|
require 'shellwords'
|
2011-01-10 08:54:17 -05:00
|
|
|
require "readline"
|
2011-02-27 18:00:51 -05:00
|
|
|
require "stringio"
|
2011-03-02 06:18:26 -05:00
|
|
|
require "coderay"
|
2011-04-25 16:58:06 -04:00
|
|
|
require "optparse"
|
|
|
|
require "slop"
|
|
|
|
require "rubygems/dependency_installer"
|
2011-03-02 06:18:26 -05:00
|
|
|
|
|
|
|
if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
|
|
|
|
begin
|
|
|
|
require 'win32console'
|
|
|
|
rescue LoadError
|
2011-04-18 17:31:39 -04:00
|
|
|
$stderr.puts "Need to `gem install win32console`"
|
2011-03-02 06:18:26 -05:00
|
|
|
exit 1
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2011-04-24 07:56:47 -04:00
|
|
|
require "pry/version"
|
2011-05-15 05:29:14 -04:00
|
|
|
require "pry/history_array"
|
2011-04-25 16:58:06 -04:00
|
|
|
require "pry/helpers"
|
2011-04-24 10:25:07 -04:00
|
|
|
require "pry/command_set"
|
2011-04-24 07:56:47 -04:00
|
|
|
require "pry/commands"
|
2011-04-25 07:26:25 -04:00
|
|
|
require "pry/command_context"
|
2011-04-24 07:56:47 -04:00
|
|
|
require "pry/custom_completions"
|
|
|
|
require "pry/completion"
|
2011-05-15 05:58:27 -04:00
|
|
|
require "pry/plugins"
|
2011-04-24 07:56:47 -04:00
|
|
|
require "pry/core_extensions"
|
|
|
|
require "pry/pry_class"
|
|
|
|
require "pry/pry_instance"
|