pry 0.9.6.2-i386-mingw32 → 0.9.7-i386-mingw32
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/.gitignore +6 -0
- data/CHANGELOG +19 -1
- data/CONTRIBUTORS +22 -16
- data/Rakefile +12 -6
- data/bin/pry +15 -12
- data/lib/pry.rb +39 -28
- data/lib/pry/command_context.rb +1 -0
- data/lib/pry/command_processor.rb +9 -2
- data/lib/pry/command_set.rb +7 -0
- data/lib/pry/config.rb +8 -0
- data/lib/pry/default_commands/basic.rb +7 -10
- data/lib/pry/default_commands/context.rb +36 -26
- data/lib/pry/default_commands/documentation.rb +31 -123
- data/lib/pry/default_commands/gems.rb +9 -4
- data/lib/pry/default_commands/input.rb +21 -11
- data/lib/pry/default_commands/introspection.rb +79 -88
- data/lib/pry/default_commands/ls.rb +165 -176
- data/lib/pry/default_commands/shell.rb +8 -8
- data/lib/pry/extended_commands/experimental.rb +1 -5
- data/lib/pry/extended_commands/user_command_api.rb +17 -5
- data/lib/pry/helpers.rb +1 -0
- data/lib/pry/helpers/base_helpers.rb +5 -1
- data/lib/pry/helpers/command_helpers.rb +22 -241
- data/lib/pry/helpers/options_helpers.rb +58 -0
- data/lib/pry/helpers/text.rb +10 -4
- data/lib/pry/history.rb +1 -1
- data/lib/pry/indent.rb +205 -0
- data/lib/pry/method.rb +412 -0
- data/lib/pry/pry_class.rb +56 -15
- data/lib/pry/pry_instance.rb +63 -16
- data/lib/pry/rbx_method.rb +20 -0
- data/lib/pry/rbx_path.rb +34 -0
- data/lib/pry/version.rb +1 -1
- data/pry.gemspec +16 -16
- data/test/helper.rb +8 -4
- data/test/test_command_helpers.rb +1 -69
- data/test/test_command_set.rb +29 -28
- data/test/test_default_commands/test_documentation.rb +23 -10
- data/test/test_default_commands/test_introspection.rb +58 -13
- data/test/test_default_commands/test_ls.rb +148 -0
- data/test/test_indent.rb +234 -0
- data/test/test_input_stack.rb +13 -0
- data/test/test_method.rb +291 -0
- data/test/test_pry.rb +10 -1
- metadata +88 -71
data/test/test_command_set.rb
CHANGED
@@ -3,6 +3,7 @@ require 'helper'
|
|
3
3
|
describe Pry::CommandSet do
|
4
4
|
before do
|
5
5
|
@set = Pry::CommandSet.new
|
6
|
+
@ctx = Pry::CommandContext.new
|
6
7
|
end
|
7
8
|
|
8
9
|
it 'should call the block used for the command when it is called' do
|
@@ -11,7 +12,7 @@ describe Pry::CommandSet do
|
|
11
12
|
run = true
|
12
13
|
end
|
13
14
|
|
14
|
-
@set.run_command
|
15
|
+
@set.run_command @ctx, 'foo'
|
15
16
|
run.should == true
|
16
17
|
end
|
17
18
|
|
@@ -20,21 +21,23 @@ describe Pry::CommandSet do
|
|
20
21
|
args.should == [1, 2, 3]
|
21
22
|
end
|
22
23
|
|
23
|
-
@set.run_command
|
24
|
+
@set.run_command @ctx, 'foo', 1, 2, 3
|
24
25
|
end
|
25
26
|
|
26
27
|
it 'should use the first argument as self' do
|
28
|
+
ctx = @ctx
|
29
|
+
|
27
30
|
@set.command 'foo' do
|
28
|
-
self.should ==
|
31
|
+
self.should == ctx
|
29
32
|
end
|
30
33
|
|
31
|
-
@set.run_command
|
34
|
+
@set.run_command @ctx, 'foo'
|
32
35
|
end
|
33
36
|
|
34
37
|
it 'should raise an error when calling an undefined command' do
|
35
38
|
@set.command('foo') {}
|
36
39
|
lambda {
|
37
|
-
@set.run_command
|
40
|
+
@set.run_command @ctx, 'bar'
|
38
41
|
}.should.raise(Pry::NoCommandError)
|
39
42
|
end
|
40
43
|
|
@@ -43,7 +46,7 @@ describe Pry::CommandSet do
|
|
43
46
|
@set.delete 'foo'
|
44
47
|
|
45
48
|
lambda {
|
46
|
-
@set.run_command
|
49
|
+
@set.run_command @ctx, 'foo'
|
47
50
|
}.should.raise(Pry::NoCommandError)
|
48
51
|
end
|
49
52
|
|
@@ -57,11 +60,11 @@ describe Pry::CommandSet do
|
|
57
60
|
|
58
61
|
@set.import_from(other_set, 'foo')
|
59
62
|
|
60
|
-
@set.run_command
|
63
|
+
@set.run_command @ctx, 'foo'
|
61
64
|
run.should == true
|
62
65
|
|
63
66
|
lambda {
|
64
|
-
@set.run_command
|
67
|
+
@set.run_command @ctx, 'bar'
|
65
68
|
}.should.raise(Pry::NoCommandError)
|
66
69
|
end
|
67
70
|
|
@@ -75,8 +78,8 @@ describe Pry::CommandSet do
|
|
75
78
|
|
76
79
|
@set.import other_set
|
77
80
|
|
78
|
-
@set.run_command
|
79
|
-
@set.run_command
|
81
|
+
@set.run_command @ctx, 'foo'
|
82
|
+
@set.run_command @ctx, 'bar'
|
80
83
|
run.should == [true, true]
|
81
84
|
end
|
82
85
|
|
@@ -84,7 +87,7 @@ describe Pry::CommandSet do
|
|
84
87
|
run = false
|
85
88
|
@set.command('foo') { run = true }
|
86
89
|
|
87
|
-
Pry::CommandSet.new(@set).run_command
|
90
|
+
Pry::CommandSet.new(@set).run_command @ctx, 'foo'
|
88
91
|
run.should == true
|
89
92
|
end
|
90
93
|
|
@@ -101,7 +104,7 @@ describe Pry::CommandSet do
|
|
101
104
|
@set.commands['bar'].name.should == 'bar'
|
102
105
|
@set.commands['bar'].description.should == ''
|
103
106
|
|
104
|
-
@set.run_command
|
107
|
+
@set.run_command @ctx, 'bar'
|
105
108
|
run.should == true
|
106
109
|
end
|
107
110
|
|
@@ -114,17 +117,17 @@ describe Pry::CommandSet do
|
|
114
117
|
|
115
118
|
it 'should return Pry::CommandContext::VOID_VALUE for commands by default' do
|
116
119
|
@set.command('foo') { 3 }
|
117
|
-
@set.run_command(
|
120
|
+
@set.run_command(@ctx, 'foo').should == Pry::CommandContext::VOID_VALUE
|
118
121
|
end
|
119
122
|
|
120
123
|
it 'should be able to keep return values' do
|
121
124
|
@set.command('foo', '', :keep_retval => true) { 3 }
|
122
|
-
@set.run_command(
|
125
|
+
@set.run_command(@ctx, 'foo').should == 3
|
123
126
|
end
|
124
127
|
|
125
128
|
it 'should be able to keep return values, even if return value is nil' do
|
126
129
|
@set.command('foo', '', :keep_retval => true) { nil }
|
127
|
-
@set.run_command(
|
130
|
+
@set.run_command(@ctx, 'foo').should == nil
|
128
131
|
end
|
129
132
|
|
130
133
|
it 'should be able to have its own helpers' do
|
@@ -136,7 +139,7 @@ describe Pry::CommandSet do
|
|
136
139
|
def my_helper; end
|
137
140
|
end
|
138
141
|
|
139
|
-
@set.run_command(
|
142
|
+
@set.run_command(@ctx, 'foo')
|
140
143
|
Pry::CommandContext.new.should.not.respond_to :my_helper
|
141
144
|
end
|
142
145
|
|
@@ -154,7 +157,7 @@ describe Pry::CommandSet do
|
|
154
157
|
def my_other_helper; end
|
155
158
|
end
|
156
159
|
|
157
|
-
@set.run_command(
|
160
|
+
@set.run_command(@ctx, 'foo')
|
158
161
|
end
|
159
162
|
|
160
163
|
it 'should import helpers from imported sets' do
|
@@ -166,7 +169,7 @@ describe Pry::CommandSet do
|
|
166
169
|
|
167
170
|
@set.import imported_set
|
168
171
|
@set.command('foo') { should.respond_to :imported_helper_method }
|
169
|
-
@set.run_command(
|
172
|
+
@set.run_command(@ctx, 'foo')
|
170
173
|
end
|
171
174
|
|
172
175
|
it 'should import helpers even if only some commands are imported' do
|
@@ -180,7 +183,7 @@ describe Pry::CommandSet do
|
|
180
183
|
|
181
184
|
@set.import_from imported_set, 'bar'
|
182
185
|
@set.command('foo') { should.respond_to :imported_helper_method }
|
183
|
-
@set.run_command(
|
186
|
+
@set.run_command(@ctx, 'foo')
|
184
187
|
end
|
185
188
|
|
186
189
|
it 'should provide a :listing for a command that defaults to its name' do
|
@@ -194,12 +197,11 @@ describe Pry::CommandSet do
|
|
194
197
|
end
|
195
198
|
|
196
199
|
it "should provide a 'help' command" do
|
197
|
-
|
198
|
-
|
199
|
-
context.output = StringIO.new
|
200
|
+
@ctx.command_set = @set
|
201
|
+
@ctx.output = StringIO.new
|
200
202
|
|
201
203
|
lambda {
|
202
|
-
@set.run_command(
|
204
|
+
@set.run_command(@ctx, 'help')
|
203
205
|
}.should.not.raise
|
204
206
|
end
|
205
207
|
|
@@ -209,13 +211,12 @@ describe Pry::CommandSet do
|
|
209
211
|
@set.command 'moo', "Mooerizes" do; end
|
210
212
|
@set.command 'boo', "Booerizes" do; end
|
211
213
|
|
212
|
-
|
213
|
-
|
214
|
-
context.output = StringIO.new
|
214
|
+
@ctx.command_set = @set
|
215
|
+
@ctx.output = StringIO.new
|
215
216
|
|
216
|
-
@set.run_command(
|
217
|
+
@set.run_command(@ctx, 'help')
|
217
218
|
|
218
|
-
doc =
|
219
|
+
doc = @ctx.output.string
|
219
220
|
|
220
221
|
order = [doc.index("boo"),
|
221
222
|
doc.index("foo"),
|
@@ -10,16 +10,6 @@ describe "Pry::DefaultCommands::Documentation" do
|
|
10
10
|
|
11
11
|
str_output.string.should =~ /sample doc/
|
12
12
|
end
|
13
|
-
|
14
|
-
it 'should output multiple methods\' documentation' do
|
15
|
-
str_output = StringIO.new
|
16
|
-
redirect_pry_io(InputTester.new("show-doc sample_method another_sample_method", "exit-all"), str_output) do
|
17
|
-
pry
|
18
|
-
end
|
19
|
-
|
20
|
-
str_output.string.should =~ /sample doc/
|
21
|
-
str_output.string.should =~ /another sample doc/
|
22
|
-
end
|
23
13
|
|
24
14
|
it 'should output a method\'s documentation if inside method without needing to use method name' do
|
25
15
|
$str_output = StringIO.new
|
@@ -37,5 +27,28 @@ describe "Pry::DefaultCommands::Documentation" do
|
|
37
27
|
$str_output.string.should =~ /sample comment/
|
38
28
|
$str_output = nil
|
39
29
|
end
|
30
|
+
|
31
|
+
it "should be able to find super methods" do
|
32
|
+
|
33
|
+
c = Class.new{
|
34
|
+
# classy initialize!
|
35
|
+
def initialize(*args); end
|
36
|
+
}
|
37
|
+
|
38
|
+
d = Class.new(c){
|
39
|
+
# grungy initialize??
|
40
|
+
def initialize(*args, &block); end
|
41
|
+
}
|
42
|
+
|
43
|
+
o = d.new
|
44
|
+
|
45
|
+
# instancey initialize!
|
46
|
+
def o.initialize; end
|
47
|
+
|
48
|
+
mock_pry(binding, "show-doc o.initialize").should =~ /instancey initialize/
|
49
|
+
mock_pry(binding, "show-doc --super o.initialize").should =~ /grungy initialize/
|
50
|
+
mock_pry(binding, "show-doc o.initialize -ss").should =~ /classy initialize/
|
51
|
+
mock_pry(binding, "show-doc --super o.initialize -ss").should == mock_pry("show-doc Object#initialize")
|
52
|
+
end
|
40
53
|
end
|
41
54
|
end
|
@@ -254,16 +254,6 @@ describe "Pry::DefaultCommands::Introspection" do
|
|
254
254
|
str_output.string.should =~ /def sample/
|
255
255
|
end
|
256
256
|
|
257
|
-
it 'should output multiple methods\' sources' do
|
258
|
-
str_output = StringIO.new
|
259
|
-
redirect_pry_io(InputTester.new("show-method sample_method another_sample_method", "exit-all"), str_output) do
|
260
|
-
pry
|
261
|
-
end
|
262
|
-
|
263
|
-
str_output.string.should =~ /def sample/
|
264
|
-
str_output.string.should =~ /def another_sample/
|
265
|
-
end
|
266
|
-
|
267
257
|
it 'should output a method\'s source with line numbers' do
|
268
258
|
str_output = StringIO.new
|
269
259
|
redirect_pry_io(InputTester.new("show-method -l sample_method", "exit-all"), str_output) do
|
@@ -312,6 +302,20 @@ describe "Pry::DefaultCommands::Introspection" do
|
|
312
302
|
$str_output = nil
|
313
303
|
end
|
314
304
|
|
305
|
+
it "should find methods even if there are spaces in the arguments" do
|
306
|
+
o = Object.new
|
307
|
+
def o.foo(*bars);
|
308
|
+
"Mr flibble"
|
309
|
+
self;
|
310
|
+
end
|
311
|
+
|
312
|
+
str_output = StringIO.new
|
313
|
+
redirect_pry_io(InputTester.new("show-method o.foo('bar', 'baz bam').foo", "exit-all"), str_output) do
|
314
|
+
binding.pry
|
315
|
+
end
|
316
|
+
str_output.string.should =~ /Mr flibble/
|
317
|
+
end
|
318
|
+
|
315
319
|
# dynamically defined method source retrieval is only supported in
|
316
320
|
# 1.9 - where Method#source_location is native
|
317
321
|
if RUBY_VERSION =~ /1.9/
|
@@ -366,6 +370,10 @@ describe "Pry::DefaultCommands::Introspection" do
|
|
366
370
|
def a
|
367
371
|
:yup
|
368
372
|
end
|
373
|
+
|
374
|
+
def b
|
375
|
+
:kinda
|
376
|
+
end
|
369
377
|
end
|
370
378
|
|
371
379
|
class X
|
@@ -378,6 +386,11 @@ describe "Pry::DefaultCommands::Introspection" do
|
|
378
386
|
def x
|
379
387
|
:nope
|
380
388
|
end
|
389
|
+
|
390
|
+
def b
|
391
|
+
super
|
392
|
+
end
|
393
|
+
alias c b
|
381
394
|
end
|
382
395
|
EOS
|
383
396
|
@tempfile.flush
|
@@ -404,19 +417,19 @@ describe "Pry::DefaultCommands::Introspection" do
|
|
404
417
|
it "should correctly find a class method" do
|
405
418
|
mock_pry("edit-method X.x")
|
406
419
|
@file.should == @tempfile.path
|
407
|
-
@line.should ==
|
420
|
+
@line.should == 14
|
408
421
|
end
|
409
422
|
|
410
423
|
it "should correctly find an instance method" do
|
411
424
|
mock_pry("edit-method X#x")
|
412
425
|
@file.should == @tempfile.path
|
413
|
-
@line.should ==
|
426
|
+
@line.should == 18
|
414
427
|
end
|
415
428
|
|
416
429
|
it "should correctly find a method on an instance" do
|
417
430
|
mock_pry("x = X.new", "edit-method x.x")
|
418
431
|
@file.should == @tempfile.path
|
419
|
-
@line.should ==
|
432
|
+
@line.should == 18
|
420
433
|
end
|
421
434
|
|
422
435
|
it "should correctly find a method from a module" do
|
@@ -424,6 +437,12 @@ describe "Pry::DefaultCommands::Introspection" do
|
|
424
437
|
@file.should == @tempfile.path
|
425
438
|
@line.should == 2
|
426
439
|
end
|
440
|
+
|
441
|
+
it "should correctly find an aliased method" do
|
442
|
+
mock_pry("edit-method X#c")
|
443
|
+
@file.should == @tempfile.path
|
444
|
+
@line.should == 22
|
445
|
+
end
|
427
446
|
end
|
428
447
|
|
429
448
|
describe 'with -p' do
|
@@ -474,6 +493,32 @@ describe "Pry::DefaultCommands::Introspection" do
|
|
474
493
|
X.new.a.should == :maybe
|
475
494
|
end
|
476
495
|
end
|
496
|
+
|
497
|
+
describe 'on an aliased method' do
|
498
|
+
before do
|
499
|
+
@old_editor = Pry.config.editor
|
500
|
+
Pry.config.editor = lambda do |file, line|
|
501
|
+
lines = File.read(file).lines.to_a
|
502
|
+
lines[1] = '"#{super}aa".to_sym' + "\n"
|
503
|
+
File.open(file, 'w') do |f|
|
504
|
+
f.write(lines.join)
|
505
|
+
end
|
506
|
+
nil
|
507
|
+
end
|
508
|
+
end
|
509
|
+
after do
|
510
|
+
Pry.config.editor = @old_editor
|
511
|
+
end
|
512
|
+
|
513
|
+
it "should change the alias, but not the original, without breaking super" do
|
514
|
+
mock_pry("edit-method -p X#c")
|
515
|
+
|
516
|
+
Pry::Method.from_str("X#c").alias?.should == true
|
517
|
+
|
518
|
+
X.new.b.should == :kinda
|
519
|
+
X.new.c.should == :kindaaa
|
520
|
+
end
|
521
|
+
end
|
477
522
|
end
|
478
523
|
end
|
479
524
|
|
@@ -0,0 +1,148 @@
|
|
1
|
+
require 'helper'
|
2
|
+
describe "ls" do
|
3
|
+
describe "class_name" do
|
4
|
+
extend Pry::DefaultCommands::Ls.helper_module
|
5
|
+
it "should use the name of the class if it exists" do
|
6
|
+
class_name(Object).should == "Object"
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should use the name of the module if it exists" do
|
10
|
+
class_name(Kernel).should == "Kernel"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should use Foo.self for singleton classes of classes" do
|
14
|
+
class_name(class << Object; self; end).should == "Object.self"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should use Foo.self for singleton methods of modules" do
|
18
|
+
class_name(class << Kernel; self; end).should == "Kernel.self"
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should default to the .to_s if that's not possible" do
|
22
|
+
cls = Class.new
|
23
|
+
class_name(cls).should == cls.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should default to .to_s.self" do
|
27
|
+
cls = Class.new
|
28
|
+
class_name(class << cls; self; end).should == "#{cls.to_s}.self"
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should just be self for singleton classes of normal objects" do
|
32
|
+
class_name(class << "hi"; self; end).should == "self"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "below ceiling" do
|
37
|
+
it "should stop before Object by default" do
|
38
|
+
mock_pry("cd Class.new{ def goo; end }.new", "ls").should.not =~ /Object/
|
39
|
+
mock_pry("cd Class.new{ def goo; end }", "ls -M").should.not =~ /Object/
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should include object if -v is given" do
|
43
|
+
mock_pry("cd Class.new{ def goo; end }.new", "ls -m -v").should =~ /Object/
|
44
|
+
mock_pry("cd Class.new{ def goo; end }", "ls -vM").should =~ /Object/
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should include super-classes by default" do
|
48
|
+
mock_pry("cd Class.new(Class.new{ def goo; end }).new", "ls").should =~ /goo/
|
49
|
+
mock_pry("cd Class.new(Class.new{ def goo; end })", "ls -M").should =~ /goo/
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should not include super-classes when -q is given" do
|
53
|
+
mock_pry("cd Class.new(Class.new{ def goo; end }).new", "ls -q").should.not =~ /goo/
|
54
|
+
mock_pry("cd Class.new(Class.new{ def goo; end })", "ls -M -q").should.not =~ /goo/
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "methods" do
|
59
|
+
it "should show public methods by default" do
|
60
|
+
mock_pry("ls Class.new{ def goo; end }.new").should =~ /goo/
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should not show protected/private by default" do
|
64
|
+
mock_pry("ls -M Class.new{ def goo; end; private :goo }").should.not =~ /goo/
|
65
|
+
mock_pry("ls Class.new{ def goo; end; protected :goo }.new").should.not =~ /goo/
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should show public methods with -p" do
|
69
|
+
mock_pry("ls -p Class.new{ def goo; end }.new").should =~ /goo/
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should show protected/private methods with -p" do
|
73
|
+
mock_pry("ls -pM Class.new{ def goo; end; protected :goo }").should =~ /goo/
|
74
|
+
mock_pry("ls -p Class.new{ def goo; end; private :goo }.new").should =~ /goo/
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should work for objects with an overridden method method" do
|
78
|
+
require 'net/http'
|
79
|
+
# This doesn't actually touch the network, promise!
|
80
|
+
mock_pry("ls Net::HTTP::Get.new('localhost')").should =~ /Net::HTTPGenericRequest methods/
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "constants" do
|
85
|
+
it "should show constants defined on the current module" do
|
86
|
+
mock_pry("class TempFoo1; BARGHL = 1; end", "ls TempFoo1").should =~ /BARGHL/
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should not show constants defined on parent modules by default" do
|
90
|
+
mock_pry("class TempFoo2; LHGRAB = 1; end; class TempFoo3 < TempFoo2; BARGHL = 1; end", "ls TempFoo3").should.not =~ /LHGRAB/
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should show constants defined on ancestors with -v" do
|
94
|
+
mock_pry("class TempFoo4; LHGRAB = 1; end; class TempFoo5 < TempFoo4; BARGHL = 1; end", "ls -v TempFoo5").should =~ /LHGRAB/
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should not autoload constants!" do
|
98
|
+
autoload :McflurgleTheThird, "/tmp/this-file-d000esnat-exist.rb"
|
99
|
+
lambda{ mock_pry("ls -c") }.should.not.raise
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "grep" do
|
104
|
+
it "should reduce the number of outputted things" do
|
105
|
+
mock_pry("ls -c").should =~ /ArgumentError/
|
106
|
+
mock_pry("ls -c --grep Run").should.not =~ /ArgumentError/
|
107
|
+
end
|
108
|
+
it "should still output matching things" do
|
109
|
+
mock_pry("ls -c --grep Run").should =~ /RuntimeError/
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "when no arguments given" do
|
114
|
+
describe "when at the top-level" do
|
115
|
+
# rubinius has a bug that means local_variables of "main" aren't reported inside eval()
|
116
|
+
unless defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /rbx/
|
117
|
+
it "should show local variables" do
|
118
|
+
mock_pry("ls").should =~ /_pry_/
|
119
|
+
mock_pry("arbitrar = 1", "ls").should =~ /arbitrar/
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
describe "when in a class" do
|
125
|
+
it "should show constants" do
|
126
|
+
mock_pry("class GeFromulate1; FOOTIFICATE=1.3; end", "cd GeFromulate1", "ls").should =~ /FOOTIFICATE/
|
127
|
+
end
|
128
|
+
|
129
|
+
it "should show class variables" do
|
130
|
+
mock_pry("class GeFromulate2; @@flurb=1.3; end", "cd GeFromulate2", "ls").should =~ /@@flurb/
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should show methods" do
|
134
|
+
mock_pry("class GeFromulate3; def self.mooflight; end ; end", "cd GeFromulate3", "ls").should =~ /mooflight/
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
describe "when in an object" do
|
139
|
+
it "should show methods" do
|
140
|
+
mock_pry("cd Class.new{ def self.fooerise; end; self }", "ls").should =~ /fooerise/
|
141
|
+
end
|
142
|
+
|
143
|
+
it "should show instance variables" do
|
144
|
+
mock_pry("cd Class.new", "@alphooent = 1", "ls").should =~ /@alphooent/
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|