pry 0.9.11.4-java → 0.9.12-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +2 -0
- data/CHANGELOG +19 -0
- data/Rakefile +4 -0
- data/lib/pry.rb +1 -1
- data/lib/pry/cli.rb +14 -8
- data/lib/pry/code.rb +3 -3
- data/lib/pry/command.rb +20 -5
- data/lib/pry/command_set.rb +3 -3
- data/lib/pry/commands.rb +1 -1
- data/lib/pry/commands/disabled_commands.rb +2 -0
- data/lib/pry/commands/ls.rb +1 -2
- data/lib/pry/commands/reload_code.rb +8 -1
- data/lib/pry/commands/show_info.rb +66 -5
- data/lib/pry/commands/show_source.rb +2 -1
- data/lib/pry/commands/whereami.rb +87 -19
- data/lib/pry/completion.rb +13 -4
- data/lib/pry/helpers/base_helpers.rb +5 -2
- data/lib/pry/helpers/command_helpers.rb +3 -1
- data/lib/pry/helpers/documentation_helpers.rb +18 -7
- data/lib/pry/helpers/table.rb +4 -4
- data/lib/pry/indent.rb +2 -7
- data/lib/pry/method.rb +89 -129
- data/lib/pry/method/disowned.rb +53 -0
- data/lib/pry/method/weird_method_locator.rb +186 -0
- data/lib/pry/module_candidate.rb +13 -8
- data/lib/pry/pager.rb +12 -11
- data/lib/pry/plugins.rb +2 -0
- data/lib/pry/pry_class.rb +19 -3
- data/lib/pry/pry_instance.rb +3 -0
- data/lib/pry/terminal.rb +78 -0
- data/lib/pry/version.rb +1 -1
- data/lib/pry/wrapped_module.rb +63 -1
- data/spec/Procfile +3 -0
- data/spec/command_helpers_spec.rb +21 -1
- data/spec/commands/ls_spec.rb +4 -0
- data/spec/commands/show_doc_spec.rb +255 -123
- data/spec/commands/show_source_spec.rb +421 -236
- data/spec/commands/whereami_spec.rb +60 -11
- data/spec/completion_spec.rb +6 -0
- data/spec/documentation_helper_spec.rb +73 -0
- data/spec/fixtures/whereami_helper.rb +6 -0
- data/spec/helpers/table_spec.rb +19 -0
- data/spec/method_spec.rb +24 -7
- metadata +12 -5
- data/.gemtest +0 -0
- data/lib/pry/commands/deprecated_commands.rb +0 -2
- data/lib/pry/terminal_info.rb +0 -48
data/lib/pry/version.rb
CHANGED
data/lib/pry/wrapped_module.rb
CHANGED
@@ -65,6 +65,30 @@ class Pry
|
|
65
65
|
@doc = nil
|
66
66
|
end
|
67
67
|
|
68
|
+
# Returns an array of the names of the constants accessible in the wrapped
|
69
|
+
# module. This provides a consistent interface between 1.8 and 1.9 and also
|
70
|
+
# avoids the problem of accidentally calling the singleton method
|
71
|
+
# `Module.constants`.
|
72
|
+
# @param [Boolean] inherit (true) Include the names of constants from
|
73
|
+
# included modules?
|
74
|
+
def constants(inherit = true)
|
75
|
+
method = Module.instance_method(:constants).bind(@wrapped)
|
76
|
+
|
77
|
+
# If we're on 1.8, we have to manually remove ancestors' constants. If
|
78
|
+
# we're on 1.9, though, it's better to use the built-in `inherit` param,
|
79
|
+
# since it doesn't do things like incorrectly remove Pry::Config.
|
80
|
+
if method.arity == 0
|
81
|
+
consts = method.call
|
82
|
+
if !inherit
|
83
|
+
consts -= (@wrapped.ancestors - [@wrapped]).map(&:constants).flatten
|
84
|
+
end
|
85
|
+
else
|
86
|
+
consts = method.call(inherit)
|
87
|
+
end
|
88
|
+
|
89
|
+
consts
|
90
|
+
end
|
91
|
+
|
68
92
|
# The prefix that would appear before methods defined on this class.
|
69
93
|
#
|
70
94
|
# i.e. the "String." or "String#" in String.new and String#initialize.
|
@@ -99,6 +123,18 @@ class Pry
|
|
99
123
|
wrapped != wrapped.ancestors.first
|
100
124
|
end
|
101
125
|
|
126
|
+
# Is this strictly a module? (does not match classes)
|
127
|
+
# @return [Boolean]
|
128
|
+
def module?
|
129
|
+
wrapped.instance_of?(Module)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Is this strictly a class?
|
133
|
+
# @return [Boolean]
|
134
|
+
def class?
|
135
|
+
wrapped.instance_of?(Class)
|
136
|
+
end
|
137
|
+
|
102
138
|
# Get the instance associated with this singleton class.
|
103
139
|
#
|
104
140
|
# @raise ArgumentError: tried to get instance of non singleton class
|
@@ -205,13 +241,27 @@ class Pry
|
|
205
241
|
@memoized_candidates[rank] ||= Candidate.new(self, rank)
|
206
242
|
end
|
207
243
|
|
208
|
-
|
209
244
|
# @return [Fixnum] The number of candidate definitions for the
|
210
245
|
# current module.
|
211
246
|
def number_of_candidates
|
212
247
|
method_candidates.count
|
213
248
|
end
|
214
249
|
|
250
|
+
# @note On JRuby 1.9 and higher, in certain conditions, this method chucks
|
251
|
+
# away its ability to be quick (when there are lots of monkey patches,
|
252
|
+
# like in Rails). However, it should be efficient enough on other rubies.
|
253
|
+
# @see https://github.com/jruby/jruby/issues/525
|
254
|
+
# @return [Enumerator, Array] on JRuby 1.9 and higher returns Array, on
|
255
|
+
# other rubies returns Enumerator
|
256
|
+
def candidates
|
257
|
+
enum = generator.new do |y|
|
258
|
+
(0...number_of_candidates).each do |num|
|
259
|
+
y.yield candidate(num)
|
260
|
+
end
|
261
|
+
end
|
262
|
+
Pry::Helpers::BaseHelpers.jruby_19? ? enum.to_a : enum
|
263
|
+
end
|
264
|
+
|
215
265
|
# @return [Boolean] Whether YARD docs are available for this module.
|
216
266
|
def yard_docs?
|
217
267
|
!!(defined?(YARD) && YARD::Registry.at(name))
|
@@ -237,6 +287,18 @@ class Pry
|
|
237
287
|
|
238
288
|
private
|
239
289
|
|
290
|
+
# Ruby 1.8 doesn't support `Enumerator` (it's called Generator instead)
|
291
|
+
#
|
292
|
+
# @return [Object] Return the appropriate generator class.
|
293
|
+
def generator
|
294
|
+
@generator ||= if defined?(Enumerator)
|
295
|
+
Enumerator
|
296
|
+
else
|
297
|
+
require 'generator'
|
298
|
+
Generator
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
240
302
|
# @return [Pry::WrappedModule::Candidate] The candidate of rank 0,
|
241
303
|
# that is the 'monkey patch' of this module with the highest
|
242
304
|
# number of methods. It is considered the 'canonical' definition
|
data/spec/Procfile
ADDED
@@ -5,5 +5,25 @@ describe Pry::Helpers::CommandHelpers do
|
|
5
5
|
@helper = Pry::Helpers::CommandHelpers
|
6
6
|
end
|
7
7
|
|
8
|
-
|
8
|
+
describe "unindent" do
|
9
|
+
it "should remove the same prefix from all lines" do
|
10
|
+
@helper.unindent(" one\n two\n").should == "one\ntwo\n"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should not be phased by empty lines" do
|
14
|
+
@helper.unindent(" one\n\n two\n").should == "one\n\ntwo\n"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should only remove a common prefix" do
|
18
|
+
@helper.unindent(" one\n two\n").should == " one\ntwo\n"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should also remove tabs if present" do
|
22
|
+
@helper.unindent("\tone\n\ttwo\n").should == "one\ntwo\n"
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should ignore lines starting with --" do
|
26
|
+
@helper.unindent(" one\n--\n two\n").should == "one\n--\ntwo\n"
|
27
|
+
end
|
28
|
+
end
|
9
29
|
end
|
data/spec/commands/ls_spec.rb
CHANGED
@@ -93,6 +93,10 @@ describe "ls" do
|
|
93
93
|
"ls Module.new{ def shinanagarns; 4; end; public :shinanagarns }")
|
94
94
|
output.should =~ /shinanagarns/
|
95
95
|
end
|
96
|
+
|
97
|
+
it "should behave normally when invoked on Module itself" do
|
98
|
+
pry_eval("ls Module").should.not =~ /Pry/
|
99
|
+
end
|
96
100
|
end
|
97
101
|
|
98
102
|
describe "constants" do
|
@@ -200,179 +200,311 @@ if !PryTestHelpers.mri18_and_no_real_source_location?
|
|
200
200
|
def woof
|
201
201
|
end
|
202
202
|
end
|
203
|
-
|
204
|
-
|
205
|
-
|
203
|
+
RUBY
|
204
|
+
t.eval('show-doc TobinaMyDog').should =~ /hello tobina/
|
205
|
+
Object.remove_const :TobinaMyDog
|
206
|
+
end
|
206
207
|
end
|
207
208
|
end
|
208
|
-
end
|
209
209
|
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
210
|
+
it 'should lookup module name with respect to current context' do
|
211
|
+
constant_scope(:AlphaClass, :BetaClass) do
|
212
|
+
# top-level beta
|
213
|
+
class BetaClass
|
214
|
+
def alpha
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
class AlphaClass
|
219
|
+
# nested beta
|
220
|
+
class BetaClass
|
221
|
+
def beta
|
222
|
+
end
|
223
|
+
end
|
215
224
|
end
|
225
|
+
|
226
|
+
pry_eval(AlphaClass, "show-doc BetaClass").should =~ /nested beta/
|
216
227
|
end
|
228
|
+
end
|
217
229
|
|
218
|
-
|
219
|
-
|
220
|
-
class
|
230
|
+
it 'should look up nested modules' do
|
231
|
+
constant_scope(:AlphaClass) do
|
232
|
+
class AlphaClass
|
233
|
+
# nested beta
|
234
|
+
class BetaClass
|
235
|
+
def beta
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
pry_eval("show-doc AlphaClass::BetaClass").should =~
|
241
|
+
/nested beta/
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
describe "show-doc -a" do
|
246
|
+
it 'should show the docs for all monkeypatches defined in different files' do
|
247
|
+
# local monkeypatch
|
248
|
+
class TestClassForShowSource
|
221
249
|
def beta
|
222
250
|
end
|
223
251
|
end
|
252
|
+
|
253
|
+
result = pry_eval("show-doc TestClassForShowSource -a")
|
254
|
+
result.should =~ /used by/
|
255
|
+
result.should =~ /local monkeypatch/
|
224
256
|
end
|
225
257
|
|
226
|
-
|
258
|
+
describe "messages relating to -a" do
|
259
|
+
it 'indicates all available monkeypatches can be shown with -a when (when -a not used and more than one candidate exists for class)' do
|
260
|
+
class TestClassForShowSource
|
261
|
+
def beta
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
result = pry_eval('show-doc TestClassForShowSource')
|
266
|
+
result.should =~ /available monkeypatches/
|
267
|
+
end
|
268
|
+
|
269
|
+
it 'shouldnt say anything about monkeypatches when only one candidate exists for selected class' do
|
270
|
+
class Aarrrrrghh
|
271
|
+
def o;end
|
272
|
+
end
|
273
|
+
|
274
|
+
result = pry_eval('show-doc Aarrrrrghh')
|
275
|
+
result.should.not =~ /available monkeypatches/
|
276
|
+
Object.remove_const(:Aarrrrrghh)
|
277
|
+
end
|
278
|
+
end
|
227
279
|
end
|
228
|
-
end
|
229
280
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
281
|
+
describe "when no class/module arg is given" do
|
282
|
+
before do
|
283
|
+
module TestHost
|
284
|
+
|
285
|
+
# hello there froggy
|
286
|
+
module M
|
287
|
+
def d; end
|
288
|
+
def e; end
|
236
289
|
end
|
237
290
|
end
|
238
291
|
end
|
239
292
|
|
240
|
-
|
241
|
-
|
293
|
+
after do
|
294
|
+
Object.remove_const(:TestHost)
|
295
|
+
end
|
296
|
+
|
297
|
+
it 'should return doc for current module' do
|
298
|
+
pry_eval(TestHost::M, "show-doc").should =~ /hello there froggy/
|
299
|
+
end
|
242
300
|
end
|
243
|
-
end
|
244
301
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
302
|
+
# FIXME: THis is nto a good spec anyway, because i dont think it
|
303
|
+
# SHOULD skip!
|
304
|
+
describe "should skip over broken modules" do
|
305
|
+
before do
|
306
|
+
module TestHost
|
307
|
+
# hello
|
308
|
+
module M
|
309
|
+
binding.eval("def a; end", "dummy.rb", 1)
|
310
|
+
binding.eval("def b; end", "dummy.rb", 2)
|
311
|
+
binding.eval("def c; end", "dummy.rb", 3)
|
312
|
+
end
|
313
|
+
|
314
|
+
# goodbye
|
315
|
+
module M
|
316
|
+
def d; end
|
317
|
+
def e; end
|
318
|
+
end
|
250
319
|
end
|
251
320
|
end
|
252
321
|
|
253
|
-
|
254
|
-
|
255
|
-
|
322
|
+
after do
|
323
|
+
Object.remove_const(:TestHost)
|
324
|
+
end
|
325
|
+
|
326
|
+
it 'should return doc for first valid module' do
|
327
|
+
result = pry_eval("show-doc TestHost::M")
|
328
|
+
result.should =~ /goodbye/
|
329
|
+
result.should.not =~ /hello/
|
330
|
+
end
|
256
331
|
end
|
257
332
|
end
|
258
333
|
|
259
|
-
describe "
|
334
|
+
describe "on commands" do
|
335
|
+
# mostly copied & modified from test_help.rb
|
260
336
|
before do
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
module M
|
265
|
-
def d; end
|
266
|
-
def e; end
|
267
|
-
end
|
337
|
+
@oldset = Pry.config.commands
|
338
|
+
@set = Pry.config.commands = Pry::CommandSet.new do
|
339
|
+
import Pry::Commands
|
268
340
|
end
|
269
341
|
end
|
270
342
|
|
271
343
|
after do
|
272
|
-
|
344
|
+
Pry.config.commands = @oldset
|
273
345
|
end
|
274
346
|
|
275
|
-
it 'should
|
276
|
-
pry_eval(
|
347
|
+
it 'should display help for a specific command' do
|
348
|
+
pry_eval('show-doc ls').should =~ /Usage: ls/
|
277
349
|
end
|
278
|
-
end
|
279
350
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
# module TestHost
|
285
|
-
# # hello
|
286
|
-
# module M
|
287
|
-
# binding.eval("def a; end", "dummy.rb", 1)
|
288
|
-
# binding.eval("def b; end", "dummy.rb", 2)
|
289
|
-
# binding.eval("def c; end", "dummy.rb", 3)
|
290
|
-
# end
|
291
|
-
|
292
|
-
# # goodbye
|
293
|
-
# module M
|
294
|
-
# def d; end
|
295
|
-
# def e; end
|
296
|
-
# end
|
297
|
-
# end
|
298
|
-
# end
|
299
|
-
|
300
|
-
# after do
|
301
|
-
# Object.remove_const(:TestHost)
|
302
|
-
# end
|
303
|
-
|
304
|
-
# it 'should return doc for first valid module' do
|
305
|
-
# result = pry_eval("show-doc TestHost::M")
|
306
|
-
# result.should =~ /goodbye/
|
307
|
-
# result.should.not =~ /hello/
|
308
|
-
# end
|
309
|
-
# end
|
310
|
-
end
|
351
|
+
it 'should display help for a regex command with a "listing"' do
|
352
|
+
@set.command /bar(.*)/, "Test listing", :listing => "foo" do; end
|
353
|
+
pry_eval('show-doc foo').should =~ /Test listing/
|
354
|
+
end
|
311
355
|
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
@oldset = Pry.config.commands
|
316
|
-
@set = Pry.config.commands = Pry::CommandSet.new do
|
317
|
-
import Pry::Commands
|
356
|
+
it 'should display help for a command with a spaces in its name' do
|
357
|
+
@set.command "command with spaces", "description of a command with spaces" do; end
|
358
|
+
pry_eval('show-doc command with spaces').should =~ /description of a command with spaces/
|
318
359
|
end
|
319
|
-
end
|
320
360
|
|
321
|
-
|
322
|
-
|
323
|
-
|
361
|
+
describe "class commands" do
|
362
|
+
before do
|
363
|
+
# pretty pink pincers
|
364
|
+
class LobsterLady < Pry::ClassCommand
|
365
|
+
match "lobster-lady"
|
366
|
+
description "nada."
|
367
|
+
def process
|
368
|
+
"lobster"
|
369
|
+
end
|
370
|
+
end
|
324
371
|
|
325
|
-
|
326
|
-
|
327
|
-
|
372
|
+
Pry.commands.add_command(LobsterLady)
|
373
|
+
end
|
374
|
+
|
375
|
+
after do
|
376
|
+
Object.remove_const(:LobsterLady)
|
377
|
+
end
|
328
378
|
|
329
|
-
|
330
|
-
|
331
|
-
|
379
|
+
it 'should display "help" when looking up by command name' do
|
380
|
+
pry_eval('show-doc lobster-lady').should =~ /nada/
|
381
|
+
Pry.commands.delete("lobster-lady")
|
382
|
+
end
|
383
|
+
|
384
|
+
it 'should display actual preceding comment for a class command, when class is used (rather than command name) when looking up' do
|
385
|
+
pry_eval('show-doc LobsterLady').should =~ /pretty pink pincers/
|
386
|
+
Pry.commands.delete("lobster-lady")
|
387
|
+
end
|
388
|
+
end
|
332
389
|
end
|
333
390
|
|
334
|
-
|
335
|
-
|
336
|
-
|
391
|
+
describe "should set _file_ and _dir_" do
|
392
|
+
it 'should set _file_ and _dir_ to file containing method source' do
|
393
|
+
t = pry_tester
|
394
|
+
t.process_command "show-doc TestClassForShowSource#alpha"
|
395
|
+
t.pry.last_file.should =~ /show_source_doc_examples/
|
396
|
+
t.pry.last_dir.should =~ /fixtures/
|
397
|
+
end
|
337
398
|
end
|
338
399
|
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
400
|
+
unless Pry::Helpers::BaseHelpers.rbx?
|
401
|
+
describe "can't find class docs" do
|
402
|
+
describe "for classes" do
|
403
|
+
before do
|
404
|
+
module Jesus
|
405
|
+
class Brian; end
|
406
|
+
|
407
|
+
# doink-doc
|
408
|
+
class Jingle
|
409
|
+
def a; :doink; end
|
410
|
+
end
|
411
|
+
|
412
|
+
class Jangle < Jingle; end
|
413
|
+
class Bangle < Jangle; end
|
414
|
+
end
|
415
|
+
end
|
416
|
+
|
417
|
+
after do
|
418
|
+
Object.remove_const(:Jesus)
|
419
|
+
end
|
420
|
+
|
421
|
+
it 'shows superclass doc' do
|
422
|
+
t = pry_tester
|
423
|
+
t.process_command "show-doc Jesus::Jangle"
|
424
|
+
t.last_output.should =~ /doink-doc/
|
425
|
+
end
|
426
|
+
|
427
|
+
it 'errors when class has no superclass to show' do
|
428
|
+
t = pry_tester
|
429
|
+
lambda { t.process_command "show-doc Jesus::Brian" }.should.raise(Pry::CommandError).message.
|
430
|
+
should =~ /Couldn't locate/
|
431
|
+
end
|
432
|
+
|
433
|
+
it 'shows warning when reverting to superclass docs' do
|
434
|
+
t = pry_tester
|
435
|
+
t.process_command "show-doc Jesus::Jangle"
|
436
|
+
t.last_output.should =~ /Warning.*?Cannot find.*?Jesus::Jangle.*Showing.*Jesus::Jingle instead/
|
437
|
+
end
|
438
|
+
|
439
|
+
it 'shows nth level superclass docs (when no intermediary superclasses have code either)' do
|
440
|
+
t = pry_tester
|
441
|
+
t.process_command "show-doc Jesus::Bangle"
|
442
|
+
t.last_output.should =~ /doink-doc/
|
443
|
+
end
|
444
|
+
|
445
|
+
it 'shows correct warning when reverting to nth level superclass' do
|
446
|
+
t = pry_tester
|
447
|
+
t.process_command "show-doc Jesus::Bangle"
|
448
|
+
t.last_output.should =~ /Warning.*?Cannot find.*?Jesus::Bangle.*Showing.*Jesus::Jingle instead/
|
347
449
|
end
|
348
450
|
end
|
349
451
|
|
350
|
-
|
351
|
-
|
452
|
+
describe "for modules" do
|
453
|
+
before do
|
454
|
+
module Jesus
|
352
455
|
|
353
|
-
|
354
|
-
|
355
|
-
|
456
|
+
# alpha-doc
|
457
|
+
module Alpha
|
458
|
+
def alpha; :alpha; end
|
459
|
+
end
|
356
460
|
|
357
|
-
|
358
|
-
pry_eval('show-doc lobster-lady').should =~ /nada/
|
359
|
-
Pry.commands.delete("lobster-lady")
|
360
|
-
end
|
461
|
+
module Zeta; end
|
361
462
|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
463
|
+
module Beta
|
464
|
+
include Alpha
|
465
|
+
end
|
466
|
+
|
467
|
+
module Gamma
|
468
|
+
include Beta
|
469
|
+
end
|
470
|
+
end
|
471
|
+
end
|
368
472
|
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
473
|
+
after do
|
474
|
+
Object.remove_const(:Jesus)
|
475
|
+
end
|
476
|
+
|
477
|
+
it 'shows included module doc' do
|
478
|
+
t = pry_tester
|
479
|
+
t.process_command "show-doc Jesus::Beta"
|
480
|
+
t.last_output.should =~ /alpha-doc/
|
481
|
+
end
|
482
|
+
|
483
|
+
it 'shows warning when reverting to included module doc' do
|
484
|
+
t = pry_tester
|
485
|
+
t.process_command "show-doc Jesus::Beta"
|
486
|
+
t.last_output.should =~ /Warning.*?Cannot find.*?Jesus::Beta.*Showing.*Jesus::Alpha instead/
|
487
|
+
end
|
488
|
+
|
489
|
+
it 'errors when module has no included module to show' do
|
490
|
+
t = pry_tester
|
491
|
+
lambda { t.process_command "show-source Jesus::Zeta" }.should.raise(Pry::CommandError).message.
|
492
|
+
should =~ /Couldn't locate/
|
493
|
+
end
|
494
|
+
|
495
|
+
it 'shows nth level included module doc (when no intermediary modules have code either)' do
|
496
|
+
t = pry_tester
|
497
|
+
t.process_command "show-doc Jesus::Gamma"
|
498
|
+
t.last_output.should =~ /alpha-doc/
|
499
|
+
end
|
500
|
+
|
501
|
+
it 'shows correct warning when reverting to nth level included module' do
|
502
|
+
t = pry_tester
|
503
|
+
t.process_command "show-source Jesus::Gamma"
|
504
|
+
t.last_output.should =~ /Warning.*?Cannot find.*?Jesus::Gamma.*Showing.*Jesus::Alpha instead/
|
505
|
+
end
|
506
|
+
end
|
507
|
+
end
|
375
508
|
end
|
376
509
|
end
|
377
510
|
end
|
378
|
-
end
|