pry 0.9.9.6pre2-java → 0.9.10-java
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +41 -0
- data/CONTRIBUTORS +27 -26
- data/README.markdown +4 -4
- data/Rakefile +2 -2
- data/lib/pry.rb +25 -19
- data/lib/pry/cli.rb +31 -10
- data/lib/pry/code.rb +41 -83
- data/lib/pry/command.rb +87 -76
- data/lib/pry/command_set.rb +13 -20
- data/lib/pry/completion.rb +139 -121
- data/lib/pry/config.rb +4 -0
- data/lib/pry/core_extensions.rb +88 -31
- data/lib/pry/default_commands/cd.rb +31 -8
- data/lib/pry/default_commands/context.rb +4 -58
- data/lib/pry/default_commands/easter_eggs.rb +1 -1
- data/lib/pry/default_commands/editing.rb +21 -14
- data/lib/pry/default_commands/find_method.rb +5 -7
- data/lib/pry/default_commands/gist.rb +187 -0
- data/lib/pry/default_commands/hist.rb +6 -6
- data/lib/pry/default_commands/input_and_output.rb +73 -129
- data/lib/pry/default_commands/introspection.rb +107 -52
- data/lib/pry/default_commands/ls.rb +1 -1
- data/lib/pry/default_commands/misc.rb +0 -5
- data/lib/pry/default_commands/whereami.rb +92 -0
- data/lib/pry/helpers/base_helpers.rb +6 -1
- data/lib/pry/helpers/command_helpers.rb +30 -9
- data/lib/pry/helpers/documentation_helpers.rb +7 -7
- data/lib/pry/helpers/options_helpers.rb +1 -1
- data/lib/pry/helpers/text.rb +7 -9
- data/lib/pry/history.rb +15 -2
- data/lib/pry/hooks.rb +1 -1
- data/lib/pry/indent.rb +17 -10
- data/lib/pry/method.rb +35 -19
- data/lib/pry/module_candidate.rb +130 -0
- data/lib/pry/pry_class.rb +54 -22
- data/lib/pry/pry_instance.rb +71 -14
- data/lib/pry/repl_file_loader.rb +80 -0
- data/lib/pry/version.rb +1 -1
- data/lib/pry/wrapped_module.rb +121 -142
- data/pry.gemspec +13 -13
- data/test/candidate_helper1.rb +11 -0
- data/test/candidate_helper2.rb +8 -0
- data/test/helper.rb +16 -0
- data/test/test_code.rb +1 -1
- data/test/test_command.rb +364 -270
- data/test/test_command_integration.rb +235 -267
- data/test/test_completion.rb +36 -0
- data/test/test_control_d_handler.rb +45 -0
- data/test/test_default_commands/example.erb +5 -0
- data/test/test_default_commands/test_cd.rb +316 -11
- data/test/test_default_commands/test_context.rb +143 -192
- data/test/test_default_commands/test_documentation.rb +81 -14
- data/test/test_default_commands/test_find_method.rb +10 -2
- data/test/test_default_commands/test_input.rb +102 -111
- data/test/test_default_commands/test_introspection.rb +17 -12
- data/test/test_default_commands/test_ls.rb +8 -6
- data/test/test_default_commands/test_shell.rb +18 -15
- data/test/test_default_commands/test_show_source.rb +170 -44
- data/test/test_exception_whitelist.rb +6 -2
- data/test/test_hooks.rb +32 -0
- data/test/test_input_stack.rb +19 -16
- data/test/test_method.rb +0 -4
- data/test/test_prompt.rb +60 -0
- data/test/test_pry.rb +23 -31
- data/test/test_pry_defaults.rb +75 -57
- data/test/test_syntax_checking.rb +12 -11
- data/test/test_wrapped_module.rb +103 -0
- metadata +72 -26
data/lib/pry/config.rb
CHANGED
@@ -145,6 +145,10 @@ class Pry
|
|
145
145
|
# @return [Boolean]
|
146
146
|
attr_accessor :should_load_rc
|
147
147
|
|
148
|
+
# Determines whether the local rc file (./.pryrc) should be loaded.
|
149
|
+
# @return [Boolean]
|
150
|
+
attr_accessor :should_load_local_rc
|
151
|
+
|
148
152
|
# Determines whether plugins should be loaded.
|
149
153
|
# @return [Boolean]
|
150
154
|
attr_accessor :should_load_plugins
|
data/lib/pry/core_extensions.rb
CHANGED
@@ -1,53 +1,110 @@
|
|
1
1
|
class Object
|
2
|
-
# Start a Pry REPL
|
3
|
-
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
|
9
|
-
# @param [
|
10
|
-
# @
|
11
|
-
# @example First
|
12
|
-
# "dummy".pry
|
13
|
-
# @example Second
|
2
|
+
# Start a Pry REPL on self.
|
3
|
+
#
|
4
|
+
# If `self` is a Binding then that will be used to evaluate expressions;
|
5
|
+
# otherwise a new binding will be created.
|
6
|
+
#
|
7
|
+
# @param [Object] object the object or binding to pry
|
8
|
+
# (__deprecated__, use `object.pry`)
|
9
|
+
# @param [Hash] hash the options hash
|
10
|
+
# @example With a binding
|
14
11
|
# binding.pry
|
15
|
-
# @example
|
12
|
+
# @example On any object
|
13
|
+
# "dummy".pry
|
14
|
+
# @example With options
|
16
15
|
# def my_method
|
17
16
|
# binding.pry :quiet => true
|
18
17
|
# end
|
19
18
|
# my_method()
|
20
|
-
|
21
|
-
def pry(
|
22
|
-
if
|
23
|
-
|
19
|
+
# @see Pry.start
|
20
|
+
def pry(object=nil, hash={})
|
21
|
+
if object.nil? || Hash === object
|
22
|
+
Pry.start(self, object || {})
|
23
|
+
else
|
24
|
+
Pry.start(object, hash)
|
24
25
|
end
|
25
|
-
|
26
|
-
Pry.start(*args)
|
27
26
|
end
|
28
27
|
|
29
28
|
# Return a binding object for the receiver.
|
29
|
+
#
|
30
|
+
# The `self` of the binding is set to the current object, and it contains no
|
31
|
+
# local variables.
|
32
|
+
#
|
33
|
+
# The default definee (http://yugui.jp/articles/846) is set such that:
|
34
|
+
#
|
35
|
+
# * If `self` is a class or module, then new methods created in the binding
|
36
|
+
# will be defined in that class or module (as in `class Foo; end`).
|
37
|
+
# * If `self` is a normal object, then new methods created in the binding will
|
38
|
+
# be defined on its singleton class (as in `class << self; end`).
|
39
|
+
# * If `self` doesn't have a real singleton class (i.e. it is a Fixnum, Float,
|
40
|
+
# Symbol, nil, true, or false), then new methods will be created on the
|
41
|
+
# object's class (as in `self.class.class_eval{ }`)
|
42
|
+
#
|
43
|
+
# Newly created constants, including classes and modules, will also be added
|
44
|
+
# to the default definee.
|
45
|
+
#
|
46
|
+
# @return [Binding]
|
30
47
|
def __binding__
|
48
|
+
# When you're cd'd into a class, methods you define should be added to it.
|
31
49
|
if is_a?(Module)
|
50
|
+
# class_eval sets both self and the default definee to this class.
|
32
51
|
return class_eval "binding"
|
33
52
|
end
|
34
53
|
|
35
|
-
unless respond_to?
|
54
|
+
unless respond_to?(:__pry__)
|
55
|
+
binding_impl_method = [<<-METHOD, __FILE__, __LINE__ + 1]
|
56
|
+
# Get a binding with 'self' set to self, and no locals.
|
57
|
+
#
|
58
|
+
# The default definee is determined by the context in which the
|
59
|
+
# definition is eval'd.
|
60
|
+
#
|
61
|
+
# Please don't call this method directly, see {__binding__}.
|
62
|
+
#
|
63
|
+
# @return [Binding]
|
64
|
+
def __pry__
|
65
|
+
binding
|
66
|
+
end
|
67
|
+
METHOD
|
68
|
+
|
69
|
+
# The easiest way to check whether an object has a working singleton class
|
70
|
+
# is to try and define a method on it. (just checking for the presence of
|
71
|
+
# the singleton class gives false positives for `true` and `false`).
|
72
|
+
# __pry__ is just the closest method we have to hand, and using
|
73
|
+
# it has the nice property that we can memoize this check.
|
36
74
|
begin
|
37
|
-
instance_eval
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
75
|
+
# instance_eval sets the default definee to the object's singleton class
|
76
|
+
instance_eval(*binding_impl_method)
|
77
|
+
|
78
|
+
# If we can't define methods on the Object's singleton_class. Then we fall
|
79
|
+
# back to setting the default definee to be the Object's class. That seems
|
80
|
+
# nicer than having a REPL in which you can't define methods.
|
42
81
|
rescue TypeError
|
43
|
-
self.class
|
44
|
-
|
45
|
-
binding
|
46
|
-
end
|
47
|
-
}
|
82
|
+
# class_eval sets the default definee to self.class
|
83
|
+
self.class.class_eval(*binding_impl_method)
|
48
84
|
end
|
49
85
|
end
|
50
86
|
|
51
|
-
|
87
|
+
__pry__
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
# There's a splat bug on jruby in 1.9 emulation mode, which breaks the
|
92
|
+
# pp library.
|
93
|
+
#
|
94
|
+
# * http://jira.codehaus.org/browse/JRUBY-6687
|
95
|
+
# * https://github.com/pry/pry/issues/568
|
96
|
+
#
|
97
|
+
# Until that gets fixed upstream, let's monkey-patch here:
|
98
|
+
if [[1, 2]].pretty_inspect == "[1]\n"
|
99
|
+
class Array
|
100
|
+
def pretty_print(q)
|
101
|
+
q.group(1, '[', ']') {
|
102
|
+
i = 0
|
103
|
+
q.seplist(self) { |*|
|
104
|
+
q.pp self[i]
|
105
|
+
i += 1
|
106
|
+
}
|
107
|
+
}
|
108
|
+
end
|
52
109
|
end
|
53
110
|
end
|
@@ -9,41 +9,63 @@ class Pry
|
|
9
9
|
Usage: cd [OPTIONS] [--help]
|
10
10
|
|
11
11
|
Move into new context (object or scope). As in unix shells use
|
12
|
-
`cd ..` to go back
|
13
|
-
|
12
|
+
`cd ..` to go back, `cd /` to return to Pry top-level and `cd -`
|
13
|
+
to toggle between last two scopes).
|
14
|
+
Complex syntax (e.g `cd ../@x/y`) also supported.
|
14
15
|
|
15
16
|
e.g: `cd @x`
|
16
|
-
e.g: `cd
|
17
|
+
e.g: `cd ..`
|
17
18
|
e.g: `cd /`
|
19
|
+
e.g: `cd -`
|
18
20
|
|
19
21
|
https://github.com/pry/pry/wiki/State-navigation#wiki-Changing_scope
|
20
22
|
BANNER
|
21
23
|
|
22
24
|
def process
|
23
|
-
|
24
|
-
|
25
|
+
# Extract command arguments. Delete blank arguments like " ", but
|
26
|
+
# don't delete empty strings like "".
|
27
|
+
path = arg_string.split(/\//).delete_if { |a| a =~ /\A\s+\z/ }
|
28
|
+
stack = _pry_.binding_stack.dup
|
29
|
+
old_stack = state.old_stack || []
|
25
30
|
|
26
|
-
#
|
27
|
-
|
31
|
+
# Special case when we only get a single "/", return to root.
|
32
|
+
if path.empty?
|
33
|
+
state.old_stack = stack.dup unless old_stack.empty?
|
34
|
+
stack = [stack.first]
|
35
|
+
end
|
28
36
|
|
29
|
-
path.
|
37
|
+
path.each_with_index do |context, i|
|
30
38
|
begin
|
31
39
|
case context.chomp
|
32
40
|
when ""
|
41
|
+
state.old_stack = stack.dup
|
33
42
|
stack = [stack.first]
|
34
43
|
when "::"
|
44
|
+
state.old_stack = stack.dup
|
35
45
|
stack.push(TOPLEVEL_BINDING)
|
36
46
|
when "."
|
37
47
|
next
|
38
48
|
when ".."
|
39
49
|
unless stack.size == 1
|
50
|
+
# Don't rewrite old_stack if we're in complex expression
|
51
|
+
# (e.g.: `cd 1/2/3/../4).
|
52
|
+
state.old_stack = stack.dup if path.first == ".."
|
40
53
|
stack.pop
|
41
54
|
end
|
55
|
+
when "-"
|
56
|
+
unless old_stack.empty?
|
57
|
+
# Interchange current stack and old stack with each other.
|
58
|
+
stack, state.old_stack = state.old_stack, stack
|
59
|
+
end
|
42
60
|
else
|
61
|
+
state.old_stack = stack.dup if i == 0
|
43
62
|
stack.push(Pry.binding_for(stack.last.eval(context)))
|
44
63
|
end
|
45
64
|
|
46
65
|
rescue RescuableException => e
|
66
|
+
# Restore old stack to its initial values.
|
67
|
+
state.old_stack = old_stack
|
68
|
+
|
47
69
|
output.puts "Bad object path: #{arg_string.chomp}. Failed trying to resolve: #{context}"
|
48
70
|
output.puts e.inspect
|
49
71
|
return
|
@@ -52,6 +74,7 @@ class Pry
|
|
52
74
|
|
53
75
|
_pry_.binding_stack = stack
|
54
76
|
end
|
77
|
+
|
55
78
|
end
|
56
79
|
end
|
57
80
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "pry/default_commands/ls"
|
2
2
|
require "pry/default_commands/cd"
|
3
3
|
require "pry/default_commands/find_method"
|
4
|
+
require "pry/default_commands/whereami"
|
4
5
|
|
5
6
|
class Pry
|
6
7
|
module DefaultCommands
|
@@ -9,62 +10,7 @@ class Pry
|
|
9
10
|
import Ls
|
10
11
|
import Cd
|
11
12
|
import FindMethod
|
12
|
-
|
13
|
-
create_command "whereami" do
|
14
|
-
description "Show code surrounding the current context."
|
15
|
-
banner <<-BANNER
|
16
|
-
Usage: whereami [OPTIONS]
|
17
|
-
BANNER
|
18
|
-
|
19
|
-
def setup
|
20
|
-
@method = Pry::Method.from_binding(target)
|
21
|
-
end
|
22
|
-
|
23
|
-
def process
|
24
|
-
if show_method?
|
25
|
-
file = @method.source_file
|
26
|
-
start = @method.source_range.begin
|
27
|
-
finish = @method.source_range.end
|
28
|
-
marker = target.eval("__LINE__")
|
29
|
-
else
|
30
|
-
file = target.eval("__FILE__")
|
31
|
-
start = target.eval("__LINE__")
|
32
|
-
finish = (args.first && args.first.to_i) || 5
|
33
|
-
marker = start
|
34
|
-
end
|
35
|
-
|
36
|
-
if invalid_file?(file)
|
37
|
-
raise Pry::CommandError,
|
38
|
-
"Cannot find local context. Did you use binding.pry?"
|
39
|
-
end
|
40
|
-
|
41
|
-
# TODO: refactor.
|
42
|
-
if show_method?
|
43
|
-
code = Pry::Code.from_file(file).between(start, finish)
|
44
|
-
else
|
45
|
-
code = Pry::Code.from_file(file).around(start, finish)
|
46
|
-
end
|
47
|
-
|
48
|
-
desc = (@method && @method.name_with_owner) || ""
|
49
|
-
|
50
|
-
if !code.empty?
|
51
|
-
output.puts "\n#{text.bold('From:')} #{file} @ line #{start} #{desc}:\n\n"
|
52
|
-
output.puts code.with_line_numbers.with_marker(marker)
|
53
|
-
output.puts
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
def show_method?
|
60
|
-
args.empty? && @method && !@method.instance_of?(Pry::Method::Disowned) && @method.source_range.count < 20
|
61
|
-
end
|
62
|
-
|
63
|
-
def invalid_file?(file)
|
64
|
-
file != Pry.eval_path &&
|
65
|
-
(file =~ /(\(.*\))|<.*>/ || file == "" || file == "-e")
|
66
|
-
end
|
67
|
-
end
|
13
|
+
import Whereami
|
68
14
|
|
69
15
|
create_command "pry-backtrace", "Show the backtrace for the Pry session." do
|
70
16
|
banner <<-BANNER
|
@@ -91,7 +37,7 @@ class Pry
|
|
91
37
|
exec "pry"
|
92
38
|
end
|
93
39
|
|
94
|
-
create_command
|
40
|
+
create_command(/wtf([?!]*)/, "Show the backtrace of the most recent exception") do
|
95
41
|
options :listing => 'wtf?'
|
96
42
|
|
97
43
|
banner <<-BANNER
|
@@ -127,7 +73,7 @@ class Pry
|
|
127
73
|
end
|
128
74
|
|
129
75
|
# N.B. using a regular expresion here so that "raise-up 'foo'" does the right thing.
|
130
|
-
create_command
|
76
|
+
create_command(/raise-up(!?\b.*)/, :listing => 'raise-up') do
|
131
77
|
description "Raise an exception out of the current pry instance."
|
132
78
|
banner <<-BANNER
|
133
79
|
Raise up, like exit, allows you to quit pry. Instead of returning a value however, it raises an exception.
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'tempfile'
|
2
|
+
require 'shellwords'
|
2
3
|
require 'pry/default_commands/hist'
|
3
4
|
|
4
5
|
class Pry
|
@@ -37,10 +38,10 @@ class Pry
|
|
37
38
|
BANNER
|
38
39
|
|
39
40
|
def options(opt)
|
40
|
-
opt.on :e, :ex, "Open the file that raised the most recent exception (_ex_.file)", :
|
41
|
-
opt.on :i, :in, "Open a temporary file containing the Nth
|
41
|
+
opt.on :e, :ex, "Open the file that raised the most recent exception (_ex_.file)", :optional_argument => true, :as => Integer
|
42
|
+
opt.on :i, :in, "Open a temporary file containing the Nth input expression. N may be a range.", :optional_argument => true, :as => Range, :default => -1..-1
|
42
43
|
opt.on :t, :temp, "Open an empty temporary file"
|
43
|
-
opt.on :l, :line, "Jump to this line in the opened file", true, :as => Integer
|
44
|
+
opt.on :l, :line, "Jump to this line in the opened file", :argument => true, :as => Integer
|
44
45
|
opt.on :n, :"no-reload", "Don't automatically reload the edited code"
|
45
46
|
opt.on :c, :"current", "Open the current __FILE__ and at __LINE__ (as returned by `whereami`)."
|
46
47
|
opt.on :r, :reload, "Reload the edited code immediately (default for ruby files)"
|
@@ -89,6 +90,7 @@ class Pry
|
|
89
90
|
f.puts(content)
|
90
91
|
f.flush
|
91
92
|
reload = !opts.present?(:'no-reload') && !Pry.config.disable_auto_reload
|
93
|
+
f.close(false)
|
92
94
|
invoke_editor(f.path, line, reload)
|
93
95
|
if reload
|
94
96
|
silence_warnings do
|
@@ -140,8 +142,12 @@ class Pry
|
|
140
142
|
line = opts[:l].to_i if opts.present?(:line)
|
141
143
|
|
142
144
|
reload = opts.present?(:reload) || ((opts.present?(:ex) || file_name.end_with?(".rb")) && !opts.present?(:'no-reload')) && !Pry.config.disable_auto_reload
|
143
|
-
|
144
|
-
|
145
|
+
|
146
|
+
# Sanitize blanks.
|
147
|
+
sanitized_file_name = Shellwords.escape(file_name)
|
148
|
+
|
149
|
+
invoke_editor(sanitized_file_name, line, reload)
|
150
|
+
set_file_and_dir_locals(sanitized_file_name)
|
145
151
|
|
146
152
|
if reload
|
147
153
|
silence_warnings do
|
@@ -209,6 +215,7 @@ class Pry
|
|
209
215
|
temp_file do |f|
|
210
216
|
f.puts lines.join
|
211
217
|
f.flush
|
218
|
+
f.close(false)
|
212
219
|
invoke_editor(f.path, 0, true)
|
213
220
|
|
214
221
|
if @method.alias?
|
@@ -352,26 +359,26 @@ class Pry
|
|
352
359
|
end
|
353
360
|
|
354
361
|
def options(opt)
|
355
|
-
opt.on :m, :method, "Play a method's source.", true do |meth_name|
|
362
|
+
opt.on :m, :method, "Play a method's source.", :argument => true do |meth_name|
|
356
363
|
meth = get_method_or_raise(meth_name, target, {})
|
357
364
|
self.content << meth.source
|
358
365
|
end
|
359
|
-
opt.on :d, :doc, "Play a method's documentation.", true do |meth_name|
|
366
|
+
opt.on :d, :doc, "Play a method's documentation.", :argument => true do |meth_name|
|
360
367
|
meth = get_method_or_raise(meth_name, target, {})
|
361
368
|
text.no_color do
|
362
|
-
self.content << process_comment_markup(meth.doc
|
369
|
+
self.content << process_comment_markup(meth.doc)
|
363
370
|
end
|
364
371
|
end
|
365
|
-
opt.on :c, :command, "Play a command's source.", true do |command_name|
|
372
|
+
opt.on :c, :command, "Play a command's source.", :argument => true do |command_name|
|
366
373
|
command = find_command(command_name)
|
367
|
-
block = Pry::Method.new(
|
374
|
+
block = Pry::Method.new(command.block)
|
368
375
|
self.content << block.source
|
369
376
|
end
|
370
|
-
opt.on :f, :file, "Play a file.", true do |file|
|
377
|
+
opt.on :f, :file, "Play a file.", :argument => true do |file|
|
371
378
|
self.content << File.read(File.expand_path(file))
|
372
379
|
end
|
373
|
-
opt.on :l, :lines, "Only play a subset of lines.", :
|
374
|
-
opt.on :i, :in, "Play entries from Pry's input expression history. Takes an index or range. Note this can only replay pure Ruby code, not Pry commands.", :
|
380
|
+
opt.on :l, :lines, "Only play a subset of lines.", :optional_argument => true, :as => Range, :default => 1..-1
|
381
|
+
opt.on :i, :in, "Play entries from Pry's input expression history. Takes an index or range. Note this can only replay pure Ruby code, not Pry commands.", :optional_argument => true,
|
375
382
|
:as => Range, :default => -5..-1 do |range|
|
376
383
|
input_expressions = _pry_.input_array[range] || []
|
377
384
|
Array(input_expressions).each { |v| self.content << v }
|
@@ -389,7 +396,7 @@ class Pry
|
|
389
396
|
begin
|
390
397
|
self.content << target.eval(arg)
|
391
398
|
rescue Pry::RescuableException
|
392
|
-
raise CommandError, "
|
399
|
+
raise CommandError, "Problem when evaling #{arg}."
|
393
400
|
end
|
394
401
|
end
|
395
402
|
end
|
@@ -18,8 +18,8 @@ class Pry
|
|
18
18
|
Use the `-n` switch (the default) to search for methods whose name matches the given regex.
|
19
19
|
Use the `-c` switch to search for methods that contain the given code.
|
20
20
|
|
21
|
-
e.g find re Pry # find all methods whose name match /re/ inside the Pry namespace. Matches Pry#repl, etc.
|
22
|
-
e.g find -c 'output.puts' Pry # find all methods that contain the code: output.puts inside the Pry namepsace.
|
21
|
+
e.g find-method re Pry # find all methods whose name match /re/ inside the Pry namespace. Matches Pry#repl, etc.
|
22
|
+
e.g find-method -c 'output.puts' Pry # find all methods that contain the code: output.puts inside the Pry namepsace.
|
23
23
|
BANNER
|
24
24
|
|
25
25
|
def setup
|
@@ -90,9 +90,7 @@ class Pry
|
|
90
90
|
# @yieldparam klazz Each class/module in the namespace.
|
91
91
|
#
|
92
92
|
def recurse_namespace(klass, done={}, &block)
|
93
|
-
if
|
94
|
-
return
|
95
|
-
end
|
93
|
+
return if !(Module === klass) || done[klass]
|
96
94
|
|
97
95
|
done[klass] = true
|
98
96
|
|
@@ -102,7 +100,7 @@ class Pry
|
|
102
100
|
next if klass.autoload?(name)
|
103
101
|
begin
|
104
102
|
const = klass.const_get(name)
|
105
|
-
rescue RescuableException
|
103
|
+
rescue RescuableException
|
106
104
|
# constant loading is an inexact science at the best of times,
|
107
105
|
# this often happens when a constant was .autoload? but someone
|
108
106
|
# tried to load it. It's now not .autoload? but will still raise
|
@@ -160,7 +158,7 @@ class Pry
|
|
160
158
|
search_all_methods(namespace) do |meth|
|
161
159
|
begin
|
162
160
|
meth.source =~ regex
|
163
|
-
rescue RescuableException
|
161
|
+
rescue RescuableException
|
164
162
|
false
|
165
163
|
end
|
166
164
|
end
|