pry 0.8.4pre1-i386-mingw32 → 0.9.0-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 +1 -0
- data/CHANGELOG +25 -6
- data/README.markdown +11 -4
- data/Rakefile +15 -19
- data/TODO +28 -2
- data/bin/pry +28 -11
- data/examples/example_basic.rb +2 -4
- data/examples/example_command_override.rb +2 -5
- data/examples/example_commands.rb +1 -4
- data/examples/example_hooks.rb +2 -5
- data/examples/example_image_edit.rb +4 -8
- data/examples/example_input.rb +1 -4
- data/examples/example_input2.rb +1 -4
- data/examples/example_output.rb +1 -4
- data/examples/example_print.rb +2 -5
- data/examples/example_prompt.rb +2 -5
- data/examples/helper.rb +6 -0
- data/lib/pry.rb +59 -3
- data/lib/pry/command_context.rb +10 -9
- data/lib/pry/command_processor.rb +51 -73
- data/lib/pry/command_set.rb +79 -28
- data/lib/pry/commands.rb +9 -123
- data/lib/pry/completion.rb +30 -29
- data/lib/pry/config.rb +100 -0
- data/lib/pry/default_commands/basic.rb +37 -0
- data/lib/pry/default_commands/context.rb +16 -15
- data/lib/pry/default_commands/documentation.rb +73 -54
- data/lib/pry/default_commands/easter_eggs.rb +1 -20
- data/lib/pry/default_commands/gems.rb +31 -40
- data/lib/pry/default_commands/input.rb +223 -15
- data/lib/pry/default_commands/introspection.rb +108 -73
- data/lib/pry/default_commands/ls.rb +25 -11
- data/lib/pry/default_commands/shell.rb +29 -39
- data/lib/pry/extended_commands/experimental.rb +17 -0
- data/lib/pry/extended_commands/user_command_api.rb +22 -0
- data/lib/pry/helpers.rb +1 -0
- data/lib/pry/helpers/base_helpers.rb +15 -104
- data/lib/pry/helpers/command_helpers.rb +96 -59
- data/lib/pry/helpers/text.rb +83 -0
- data/lib/pry/history_array.rb +105 -0
- data/lib/pry/plugins.rb +79 -0
- data/lib/pry/pry_class.rb +102 -114
- data/lib/pry/pry_instance.rb +123 -55
- data/lib/pry/version.rb +1 -1
- data/pry.gemspec +45 -0
- data/test/helper.rb +57 -7
- data/test/test_command_processor.rb +205 -0
- data/test/{test_commandset.rb → test_command_set.rb} +18 -12
- data/test/test_default_commands.rb +59 -0
- data/test/test_default_commands/test_context.rb +64 -0
- data/test/test_default_commands/test_documentation.rb +31 -0
- data/test/test_default_commands/test_gems.rb +14 -0
- data/test/test_default_commands/test_input.rb +327 -0
- data/test/test_default_commands/test_introspection.rb +155 -0
- data/test/test_history_array.rb +65 -0
- data/test/test_pry.rb +548 -313
- metadata +48 -15
- data/lib/pry/hooks.rb +0 -17
- data/lib/pry/print.rb +0 -16
- data/lib/pry/prompts.rb +0 -31
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Pry::HistoryArray do
|
4
|
+
before do
|
5
|
+
@array = Pry::HistoryArray.new 10
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'should have a maximum size specifed at creation time' do
|
9
|
+
@array.max_size.should == 10
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should be able to be added objects to' do
|
13
|
+
@array << 1 << 2 << 3
|
14
|
+
@array.size.should == 3
|
15
|
+
@array.to_a.should == [1, 2, 3]
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should be able to access single elements' do
|
19
|
+
@array << 1 << 2 << 3
|
20
|
+
@array[2].should == 3
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should be able to access negative indices' do
|
24
|
+
@array << 1 << 2 << 3
|
25
|
+
@array[-1].should == 3
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should be able to access ranges' do
|
29
|
+
@array << 1 << 2 << 3 << 4
|
30
|
+
@array[1..2].should == [2, 3]
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should be able to access ranges starting from a negative index' do
|
34
|
+
@array << 1 << 2 << 3 << 4
|
35
|
+
@array[-2..3].should == [3, 4]
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should be able to access ranges ending at a negative index' do
|
39
|
+
@array << 1 << 2 << 3 << 4
|
40
|
+
@array[2..-1].should == [3, 4]
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should be able to access ranges using only negative indices' do
|
44
|
+
@array << 1 << 2 << 3 << 4
|
45
|
+
@array[-2..-1].should == [3, 4]
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'should be able to use range where end is excluded' do
|
49
|
+
@array << 1 << 2 << 3 << 4
|
50
|
+
@array[-2...-1].should == [3]
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should be able to access slices using a size' do
|
54
|
+
@array << 1 << 2 << 3 << 4
|
55
|
+
@array[-3, 2].should == [2, 3]
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should remove older entries' do
|
59
|
+
11.times { |n| @array << n }
|
60
|
+
|
61
|
+
@array[0].should == nil
|
62
|
+
@array[1].should == 1
|
63
|
+
@array[10].should == 10
|
64
|
+
end
|
65
|
+
end
|
data/test/test_pry.rb
CHANGED
@@ -6,6 +6,15 @@ puts "With method_source version #{MethodSource::VERSION}"
|
|
6
6
|
puts "--"
|
7
7
|
|
8
8
|
describe Pry do
|
9
|
+
|
10
|
+
describe 'warning emissions' do
|
11
|
+
it 'should emit no warnings' do
|
12
|
+
Open4.popen4 'ruby -I lib -rubygems -r"pry" -W -e "exit"' do |pid, stdin, stdout, stderr|
|
13
|
+
stderr.read.empty?.should == true
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
9
18
|
describe "open a Pry session on an object" do
|
10
19
|
describe "rep" do
|
11
20
|
before do
|
@@ -31,6 +40,17 @@ describe Pry do
|
|
31
40
|
@excep.is_a?(NameError).should == true
|
32
41
|
end
|
33
42
|
|
43
|
+
if defined?(BasicObject)
|
44
|
+
it 'should be able to operate inside the BasicObject class' do
|
45
|
+
$obj = nil
|
46
|
+
redirect_pry_io(InputTester.new(":foo", "$obj = _", "exit-all"), StringIO.new) do
|
47
|
+
BasicObject.pry
|
48
|
+
end
|
49
|
+
$obj.should == :foo
|
50
|
+
$obj = nil
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
34
54
|
it 'should set an ivar on an object' do
|
35
55
|
input_string = "@x = 10"
|
36
56
|
input = InputTester.new(input_string)
|
@@ -134,14 +154,80 @@ describe Pry do
|
|
134
154
|
end
|
135
155
|
end
|
136
156
|
|
157
|
+
describe "history arrays" do
|
158
|
+
it 'sets _ to the last result' do
|
159
|
+
res = []
|
160
|
+
input = InputTester.new *[":foo", "self << _", "42", "self << _"]
|
161
|
+
pry = Pry.new(:input => input, :output => Pry::NullOutput)
|
162
|
+
pry.repl(res)
|
163
|
+
|
164
|
+
res.should == [:foo, 42]
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'sets out to an array with the result' do
|
168
|
+
res = {}
|
169
|
+
input = InputTester.new *[":foo", "42", "self[:res] = out"]
|
170
|
+
pry = Pry.new(:input => input, :output => Pry::NullOutput)
|
171
|
+
pry.repl(res)
|
172
|
+
|
173
|
+
res[:res].should.be.kind_of Pry::HistoryArray
|
174
|
+
res[:res][1..2].should == [:foo, 42]
|
175
|
+
end
|
176
|
+
|
177
|
+
it 'sets inp to an array with the entered lines' do
|
178
|
+
res = {}
|
179
|
+
input = InputTester.new *[":foo", "42", "self[:res] = inp"]
|
180
|
+
pry = Pry.new(:input => input, :output => Pry::NullOutput)
|
181
|
+
pry.repl(res)
|
182
|
+
|
183
|
+
res[:res].should.be.kind_of Pry::HistoryArray
|
184
|
+
res[:res][1..2].should == [":foo\n", "42\n"]
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'uses 100 as the size of inp and out' do
|
188
|
+
res = []
|
189
|
+
input = InputTester.new *["self << out.max_size << inp.max_size"]
|
190
|
+
pry = Pry.new(:input => input, :output => Pry::NullOutput)
|
191
|
+
pry.repl(res)
|
192
|
+
|
193
|
+
res.should == [100, 100]
|
194
|
+
end
|
195
|
+
|
196
|
+
it 'can change the size of the history arrays' do
|
197
|
+
res = []
|
198
|
+
input = InputTester.new *["self << out.max_size << inp.max_size"]
|
199
|
+
pry = Pry.new(:input => input, :output => Pry::NullOutput,
|
200
|
+
:memory_size => 1000)
|
201
|
+
pry.repl(res)
|
202
|
+
|
203
|
+
res.should == [1000, 1000]
|
204
|
+
end
|
205
|
+
|
206
|
+
it 'store exceptions' do
|
207
|
+
res = []
|
208
|
+
input = InputTester.new *["foo!","self << inp[-1] << out[-1]"]
|
209
|
+
pry = Pry.new(:input => input, :output => Pry::NullOutput,
|
210
|
+
:memory_size => 1000)
|
211
|
+
pry.repl(res)
|
212
|
+
|
213
|
+
res.first.should == "foo!\n"
|
214
|
+
res.last.should.be.kind_of NoMethodError
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
137
218
|
describe "test loading rc files" do
|
219
|
+
|
220
|
+
before do
|
221
|
+
Pry.instance_variable_set(:@initial_session, true)
|
222
|
+
end
|
223
|
+
|
138
224
|
after do
|
139
225
|
Pry::RC_FILES.clear
|
140
|
-
Pry.should_load_rc = false
|
226
|
+
Pry.config.should_load_rc = false
|
141
227
|
end
|
142
228
|
|
143
229
|
it "should run the rc file only once" do
|
144
|
-
Pry.should_load_rc = true
|
230
|
+
Pry.config.should_load_rc = true
|
145
231
|
Pry::RC_FILES << File.expand_path("../testrc", __FILE__)
|
146
232
|
|
147
233
|
Pry.start(self, :input => StringIO.new("exit\n"), :output => Pry::NullOutput)
|
@@ -153,17 +239,17 @@ describe Pry do
|
|
153
239
|
Object.remove_const(:TEST_RC)
|
154
240
|
end
|
155
241
|
|
156
|
-
it "should not run the rc file at all if Pry.should_load_rc is false" do
|
157
|
-
Pry.should_load_rc = false
|
242
|
+
it "should not run the rc file at all if Pry.config.should_load_rc is false" do
|
243
|
+
Pry.config.should_load_rc = false
|
158
244
|
Pry.start(self, :input => StringIO.new("exit\n"), :output => Pry::NullOutput)
|
159
245
|
Object.const_defined?(:TEST_RC).should == false
|
160
246
|
end
|
161
247
|
|
162
248
|
it "should not load the rc file if #repl method invoked" do
|
163
|
-
Pry.should_load_rc = true
|
249
|
+
Pry.config.should_load_rc = true
|
164
250
|
Pry.new(:input => StringIO.new("exit\n"), :output => Pry::NullOutput).repl(self)
|
165
251
|
Object.const_defined?(:TEST_RC).should == false
|
166
|
-
Pry.should_load_rc = false
|
252
|
+
Pry.config.should_load_rc = false
|
167
253
|
end
|
168
254
|
end
|
169
255
|
|
@@ -219,10 +305,8 @@ describe Pry do
|
|
219
305
|
val.class.instance_methods(false).map(&:to_sym).include?(:hello).should == true
|
220
306
|
end
|
221
307
|
end
|
222
|
-
|
223
308
|
end
|
224
309
|
|
225
|
-
|
226
310
|
describe "commands" do
|
227
311
|
it 'should run a command with no parameter' do
|
228
312
|
pry_tester = Pry.new
|
@@ -386,70 +470,180 @@ describe Pry do
|
|
386
470
|
str_output2.string.should =~ /7/
|
387
471
|
end
|
388
472
|
|
389
|
-
# describe "Pry.run_command" do
|
390
|
-
# before do
|
391
|
-
# class RCTest
|
392
|
-
# def a() end
|
393
|
-
# B = 20
|
394
|
-
# @x = 10
|
395
|
-
# end
|
396
|
-
# end
|
397
|
-
|
398
|
-
# after do
|
399
|
-
# Object.remove_const(:RCTest)
|
400
|
-
# end
|
401
|
-
|
402
|
-
# it "should execute command in the appropriate object context" do
|
403
|
-
# result = Pry.run_command "ls", :context => RCTest
|
404
|
-
# result.map(&:to_sym).should == [:@x]
|
405
|
-
# end
|
406
|
-
|
407
|
-
# it "should execute command with parameters in the appropriate object context" do
|
408
|
-
# result = Pry.run_command "ls -M", :context => RCTest
|
409
|
-
# result.map(&:to_sym).should == [:a]
|
410
|
-
# end
|
411
|
-
|
412
|
-
# it "should execute command and show output with :show_output => true flag" do
|
413
|
-
# str = StringIO.new
|
414
|
-
# Pry.output = str
|
415
|
-
# result = Pry.run_command "ls -afv", :context => RCTest, :show_output => true
|
416
|
-
# str.string.should =~ /global variables/
|
417
|
-
# Pry.output = $stdout
|
418
|
-
# end
|
419
|
-
|
420
|
-
# it "should execute command with multiple parameters" do
|
421
|
-
# result = Pry.run_command "ls -c -M RCTest"
|
422
|
-
# result.map(&:to_sym).should == [:a, :B]
|
423
|
-
# end
|
424
|
-
# end
|
425
|
-
|
426
473
|
describe "commands" do
|
427
474
|
it 'should interpolate ruby code into commands' do
|
428
|
-
klass = Pry::CommandSet.new
|
475
|
+
klass = Pry::CommandSet.new do
|
429
476
|
command "hello", "", :keep_retval => true do |arg|
|
430
477
|
arg
|
431
478
|
end
|
432
479
|
end
|
433
480
|
|
434
|
-
|
481
|
+
$test_interpolation = "bing"
|
435
482
|
str_output = StringIO.new
|
436
|
-
Pry.new(:input => StringIO.new(
|
483
|
+
Pry.new(:input => StringIO.new('hello #{$test_interpolation}'), :output => str_output, :commands => klass).rep
|
437
484
|
str_output.string.should =~ /bing/
|
438
|
-
|
485
|
+
$test_interpolation = nil
|
486
|
+
end
|
487
|
+
|
488
|
+
it 'should NOT interpolate ruby code into commands if :interpolate => false' do
|
489
|
+
klass = Pry::CommandSet.new do
|
490
|
+
command "hello", "", :keep_retval => true, :interpolate => false do |arg|
|
491
|
+
arg
|
492
|
+
end
|
493
|
+
end
|
494
|
+
|
495
|
+
$test_interpolation = "bing"
|
496
|
+
str_output = StringIO.new
|
497
|
+
Pry.new(:input => StringIO.new('hello #{$test_interpolation}'), :output => str_output, :commands => klass).rep
|
498
|
+
str_output.string.should =~ /test_interpolation/
|
499
|
+
$test_interpolation = nil
|
500
|
+
end
|
501
|
+
|
502
|
+
it 'should NOT try to interpolate pure ruby code (no commands) ' do
|
503
|
+
str_output = StringIO.new
|
504
|
+
Pry.new(:input => StringIO.new('puts \'#{aggy}\''), :output => str_output).rep
|
505
|
+
str_output.string.should.not =~ /NameError/
|
506
|
+
|
507
|
+
Pry.new(:input => StringIO.new('puts #{aggy}'), :output => str_output).rep
|
508
|
+
str_output.string.should.not =~ /NameError/
|
509
|
+
|
510
|
+
$test_interpolation = "blah"
|
511
|
+
Pry.new(:input => StringIO.new('puts \'#{$test_interpolation}\''), :output => str_output).rep
|
512
|
+
|
513
|
+
str_output.string.should.not =~ /blah/
|
514
|
+
$test_interpolation = nil
|
515
|
+
end
|
516
|
+
|
517
|
+
it 'should create a command with a space in its name' do
|
518
|
+
set = Pry::CommandSet.new do
|
519
|
+
command "hello baby", "" do
|
520
|
+
output.puts "hello baby command"
|
521
|
+
end
|
522
|
+
end
|
523
|
+
|
524
|
+
str_output = StringIO.new
|
525
|
+
redirect_pry_io(InputTester.new("hello baby", "exit-all"), str_output) do
|
526
|
+
Pry.new(:commands => set).rep
|
527
|
+
end
|
528
|
+
|
529
|
+
str_output.string.should =~ /hello baby command/
|
530
|
+
end
|
531
|
+
|
532
|
+
it 'should create a command with a space in its name and pass an argument' do
|
533
|
+
set = Pry::CommandSet.new do
|
534
|
+
command "hello baby", "" do |arg|
|
535
|
+
output.puts "hello baby command #{arg}"
|
536
|
+
end
|
537
|
+
end
|
538
|
+
|
539
|
+
str_output = StringIO.new
|
540
|
+
redirect_pry_io(InputTester.new("hello baby john"), str_output) do
|
541
|
+
Pry.new(:commands => set).rep
|
542
|
+
end
|
543
|
+
|
544
|
+
str_output.string.should =~ /hello baby command john/
|
545
|
+
end
|
546
|
+
|
547
|
+
it 'should create a regex command and be able to invoke it' do
|
548
|
+
set = Pry::CommandSet.new do
|
549
|
+
command /hello(.)/, "" do
|
550
|
+
c = captures.first
|
551
|
+
output.puts "hello#{c}"
|
552
|
+
end
|
553
|
+
end
|
554
|
+
|
555
|
+
str_output = StringIO.new
|
556
|
+
redirect_pry_io(InputTester.new("hello1"), str_output) do
|
557
|
+
Pry.new(:commands => set).rep
|
558
|
+
end
|
559
|
+
|
560
|
+
str_output.string.should =~ /hello1/
|
561
|
+
end
|
562
|
+
|
563
|
+
it 'should create a regex command and pass captures into the args list before regular arguments' do
|
564
|
+
set = Pry::CommandSet.new do
|
565
|
+
command /hello(.)/, "" do |c1, a1|
|
566
|
+
output.puts "hello #{c1} #{a1}"
|
567
|
+
end
|
568
|
+
end
|
569
|
+
|
570
|
+
str_output = StringIO.new
|
571
|
+
redirect_pry_io(InputTester.new("hello1 baby"), str_output) do
|
572
|
+
Pry.new(:commands => set).rep
|
573
|
+
end
|
574
|
+
|
575
|
+
str_output.string.should =~ /hello 1 baby/
|
439
576
|
end
|
440
577
|
|
441
|
-
it 'should create a
|
442
|
-
|
578
|
+
it 'should create a regex command and interpolate the captures' do
|
579
|
+
set = Pry::CommandSet.new do
|
580
|
+
command /hello (.*)/, "" do |c1|
|
581
|
+
output.puts "hello #{c1}"
|
582
|
+
end
|
583
|
+
end
|
584
|
+
|
585
|
+
str_output = StringIO.new
|
586
|
+
$obj = "bing"
|
587
|
+
redirect_pry_io(InputTester.new('hello #{$obj}'), str_output) do
|
588
|
+
Pry.new(:commands => set).rep
|
589
|
+
end
|
590
|
+
|
591
|
+
str_output.string.should =~ /hello bing/
|
592
|
+
$obj = nil
|
593
|
+
end
|
594
|
+
|
595
|
+
it 'should create a regex command and arg_string should be interpolated' do
|
596
|
+
set = Pry::CommandSet.new do
|
597
|
+
command /hello(\w+)/, "" do |c1, a1, a2, a3|
|
598
|
+
output.puts "hello #{c1} #{a1} #{a2} #{a3}"
|
599
|
+
end
|
600
|
+
end
|
601
|
+
|
602
|
+
str_output = StringIO.new
|
603
|
+
$a1 = "bing"
|
604
|
+
$a2 = "bong"
|
605
|
+
$a3 = "bang"
|
606
|
+
redirect_pry_io(InputTester.new('hellojohn #{$a1} #{$a2} #{$a3}'), str_output) do
|
607
|
+
Pry.new(:commands => set).rep
|
608
|
+
end
|
609
|
+
|
610
|
+
str_output.string.should =~ /hello john bing bong bang/
|
611
|
+
|
612
|
+
$a1 = nil
|
613
|
+
$a2 = nil
|
614
|
+
$a3 = nil
|
615
|
+
end
|
616
|
+
|
617
|
+
|
618
|
+
it 'if a regex capture is missing it should be nil' do
|
619
|
+
set = Pry::CommandSet.new do
|
620
|
+
command /hello(.)?/, "" do |c1, a1|
|
621
|
+
output.puts "hello #{c1.inspect} #{a1}"
|
622
|
+
end
|
623
|
+
end
|
624
|
+
|
443
625
|
str_output = StringIO.new
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
str_output.string.should =~
|
626
|
+
redirect_pry_io(InputTester.new("hello baby"), str_output) do
|
627
|
+
Pry.new(:commands => set).rep
|
628
|
+
end
|
629
|
+
|
630
|
+
str_output.string.should =~ /hello nil baby/
|
631
|
+
end
|
632
|
+
|
633
|
+
it 'should create a command in a nested context and that command should be accessible from the parent' do
|
634
|
+
redirect_pry_io(StringIO.new, StringIO.new) do
|
635
|
+
str_input = StringIO.new("@x=nil\ncd 7\n_pry_.commands.instance_eval {\ncommand('bing') { |arg| run arg }\n}\ncd ..\nbing ls\nexit")
|
636
|
+
str_output = StringIO.new
|
637
|
+
Pry.input = str_input
|
638
|
+
obj = Object.new
|
639
|
+
Pry.new(:output => str_output).repl(obj)
|
640
|
+
Pry.input = Readline
|
641
|
+
str_output.string.should =~ /@x/
|
642
|
+
end
|
449
643
|
end
|
450
644
|
|
451
645
|
it 'should define a command that keeps its return value' do
|
452
|
-
klass = Pry::CommandSet.new
|
646
|
+
klass = Pry::CommandSet.new do
|
453
647
|
command "hello", "", :keep_retval => true do
|
454
648
|
:kept_hello
|
455
649
|
end
|
@@ -461,7 +655,7 @@ describe Pry do
|
|
461
655
|
end
|
462
656
|
|
463
657
|
it 'should define a command that does NOT keep its return value' do
|
464
|
-
klass = Pry::CommandSet.new
|
658
|
+
klass = Pry::CommandSet.new do
|
465
659
|
command "hello", "", :keep_retval => false do
|
466
660
|
:kept_hello
|
467
661
|
end
|
@@ -469,11 +663,11 @@ describe Pry do
|
|
469
663
|
str_output = StringIO.new
|
470
664
|
Pry.new(:input => StringIO.new("hello\n"), :output => str_output, :commands => klass).rep
|
471
665
|
(str_output.string =~ /:kept_hello/).should == nil
|
472
|
-
|
666
|
+
str_output.string !~ /=>/
|
473
667
|
end
|
474
668
|
|
475
669
|
it 'should set the commands default, and the default should be overridable' do
|
476
|
-
klass = Pry::CommandSet.new
|
670
|
+
klass = Pry::CommandSet.new do
|
477
671
|
command "hello" do
|
478
672
|
output.puts "hello world"
|
479
673
|
end
|
@@ -485,342 +679,383 @@ describe Pry do
|
|
485
679
|
Pry.new(:input => InputTester.new("hello"), :output => str_output).rep
|
486
680
|
str_output.string.should =~ /hello world/
|
487
681
|
|
488
|
-
|
489
|
-
|
490
|
-
|
682
|
+
other_klass = Pry::CommandSet.new do
|
683
|
+
command "goodbye", "" do
|
684
|
+
output.puts "goodbye world"
|
685
|
+
end
|
491
686
|
end
|
492
|
-
end
|
493
687
|
|
494
|
-
|
688
|
+
str_output = StringIO.new
|
495
689
|
|
496
|
-
|
497
|
-
|
498
|
-
|
690
|
+
Pry.new(:input => InputTester.new("goodbye"), :output => str_output, :commands => other_klass).rep
|
691
|
+
str_output.string.should =~ /goodbye world/
|
692
|
+
end
|
499
693
|
|
500
|
-
|
501
|
-
|
502
|
-
|
694
|
+
it 'should inherit "help" command from Pry::CommandBase' do
|
695
|
+
klass = Pry::CommandSet.new do
|
696
|
+
command "h", "h command" do
|
697
|
+
end
|
503
698
|
end
|
504
|
-
end
|
505
699
|
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
700
|
+
klass.commands.keys.size.should == 3
|
701
|
+
klass.commands.keys.include?("help").should == true
|
702
|
+
klass.commands.keys.include?("install").should == true
|
703
|
+
klass.commands.keys.include?("h").should == true
|
704
|
+
end
|
511
705
|
|
512
|
-
|
513
|
-
|
514
|
-
|
706
|
+
it 'should inherit commands from Pry::Commands' do
|
707
|
+
klass = Pry::CommandSet.new Pry::Commands do
|
708
|
+
command "v" do
|
709
|
+
end
|
515
710
|
end
|
711
|
+
|
712
|
+
klass.commands.include?("nesting").should == true
|
713
|
+
klass.commands.include?("jump-to").should == true
|
714
|
+
klass.commands.include?("cd").should == true
|
715
|
+
klass.commands.include?("v").should == true
|
516
716
|
end
|
517
717
|
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
718
|
+
it 'should alias a command with another command' do
|
719
|
+
klass = Pry::CommandSet.new do
|
720
|
+
alias_command "help2", "help"
|
721
|
+
end
|
722
|
+
klass.commands["help2"].block.should == klass.commands["help"].block
|
723
|
+
end
|
523
724
|
|
524
|
-
|
525
|
-
klass = Pry::CommandSet.new
|
526
|
-
|
725
|
+
it 'should change description of a command using desc' do
|
726
|
+
klass = Pry::CommandSet.new do; end
|
727
|
+
orig = klass.commands["help"].description
|
728
|
+
klass.instance_eval do
|
729
|
+
desc "help", "blah"
|
730
|
+
end
|
731
|
+
klass.commands["help"].description.should.not == orig
|
732
|
+
klass.commands["help"].description.should == "blah"
|
527
733
|
end
|
528
734
|
|
735
|
+
it 'should run a command from within a command' do
|
736
|
+
klass = Pry::CommandSet.new do
|
737
|
+
command "v" do
|
738
|
+
output.puts "v command"
|
739
|
+
end
|
529
740
|
|
530
|
-
|
531
|
-
|
741
|
+
command "run_v" do
|
742
|
+
run "v"
|
743
|
+
end
|
744
|
+
end
|
532
745
|
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
klass.instance_eval do
|
537
|
-
desc "help", "blah"
|
746
|
+
str_output = StringIO.new
|
747
|
+
Pry.new(:input => InputTester.new("run_v"), :output => str_output, :commands => klass).rep
|
748
|
+
str_output.string.should =~ /v command/
|
538
749
|
end
|
539
|
-
klass.commands["help"].description.should.not == orig
|
540
|
-
klass.commands["help"].description.should == "blah"
|
541
|
-
end
|
542
750
|
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
751
|
+
it 'should run a regex command from within a command' do
|
752
|
+
klass = Pry::CommandSet.new do
|
753
|
+
command /v(.*)?/ do |arg|
|
754
|
+
output.puts "v #{arg}"
|
755
|
+
end
|
756
|
+
|
757
|
+
command "run_v" do
|
758
|
+
run "vbaby"
|
759
|
+
end
|
547
760
|
end
|
548
761
|
|
549
|
-
|
550
|
-
|
762
|
+
str_output = StringIO.new
|
763
|
+
redirect_pry_io(InputTester.new("run_v"), str_output) do
|
764
|
+
Pry.new(:commands => klass).rep
|
551
765
|
end
|
766
|
+
|
767
|
+
str_output.string.should =~ /v baby/
|
552
768
|
end
|
553
769
|
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
770
|
+
it 'should run a command from within a command with arguments' do
|
771
|
+
klass = Pry::CommandSet.new do
|
772
|
+
command /v(\w+)/ do |arg1, arg2|
|
773
|
+
output.puts "v #{arg1} #{arg2}"
|
774
|
+
end
|
558
775
|
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
776
|
+
command "run_v_explicit_parameter" do
|
777
|
+
run "vbaby", "param"
|
778
|
+
end
|
779
|
+
|
780
|
+
command "run_v_embedded_parameter" do
|
781
|
+
run "vbaby param"
|
782
|
+
end
|
563
783
|
end
|
564
|
-
end
|
565
784
|
|
566
|
-
|
785
|
+
["run_v_explicit_parameter", "run_v_embedded_parameter"].each do |cmd|
|
786
|
+
str_output = StringIO.new
|
787
|
+
redirect_pry_io(InputTester.new(cmd), str_output) do
|
788
|
+
Pry.new(:commands => klass).rep
|
789
|
+
end
|
790
|
+
str_output.string.should =~ /v baby param/
|
791
|
+
end
|
567
792
|
end
|
568
793
|
|
569
|
-
|
570
|
-
|
571
|
-
|
794
|
+
it 'should enable an inherited method to access opts and output and target, due to instance_exec' do
|
795
|
+
klass = Pry::CommandSet.new do
|
796
|
+
command "v" do
|
797
|
+
output.puts "#{target.eval('self')}"
|
798
|
+
end
|
799
|
+
end
|
572
800
|
|
573
|
-
|
574
|
-
|
801
|
+
child_klass = Pry::CommandSet.new klass do
|
802
|
+
end
|
803
|
+
|
804
|
+
str_output = StringIO.new
|
805
|
+
Pry.new(:print => proc {}, :input => InputTester.new("v"),
|
806
|
+
:output => str_output, :commands => child_klass).rep("john")
|
575
807
|
|
576
|
-
|
577
|
-
klass = Pry::CommandSet.new :test do
|
578
|
-
import_from Pry::Commands, "ls", "jump-to"
|
808
|
+
str_output.string.rstrip.should == "john"
|
579
809
|
end
|
580
810
|
|
811
|
+
it 'should import commands from another command object' do
|
812
|
+
klass = Pry::CommandSet.new do
|
813
|
+
import_from Pry::Commands, "ls", "jump-to"
|
814
|
+
end
|
815
|
+
|
581
816
|
klass.commands.include?("ls").should == true
|
582
817
|
klass.commands.include?("jump-to").should == true
|
583
818
|
end
|
584
819
|
|
585
|
-
|
586
|
-
|
587
|
-
|
820
|
+
it 'should delete some inherited commands when using delete method' do
|
821
|
+
klass = Pry::CommandSet.new Pry::Commands do
|
822
|
+
command "v" do
|
823
|
+
end
|
824
|
+
|
825
|
+
delete "show-doc", "show-method"
|
826
|
+
delete "ls"
|
588
827
|
end
|
589
828
|
|
590
|
-
|
591
|
-
|
829
|
+
klass.commands.include?("nesting").should == true
|
830
|
+
klass.commands.include?("jump-to").should == true
|
831
|
+
klass.commands.include?("cd").should == true
|
832
|
+
klass.commands.include?("v").should == true
|
833
|
+
klass.commands.include?("show-doc").should == false
|
834
|
+
klass.commands.include?("show-method").should == false
|
835
|
+
klass.commands.include?("ls").should == false
|
592
836
|
end
|
593
837
|
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
klass.commands.include?("show-method").should == false
|
600
|
-
klass.commands.include?("ls").should == false
|
601
|
-
end
|
602
|
-
|
603
|
-
it 'should override some inherited commands' do
|
604
|
-
klass = Pry::CommandSet.new :test, Pry::Commands do
|
605
|
-
command "jump-to" do
|
606
|
-
output.puts "jump-to the music"
|
607
|
-
end
|
838
|
+
it 'should override some inherited commands' do
|
839
|
+
klass = Pry::CommandSet.new Pry::Commands do
|
840
|
+
command "jump-to" do
|
841
|
+
output.puts "jump-to the music"
|
842
|
+
end
|
608
843
|
|
609
|
-
|
610
|
-
|
844
|
+
command "help" do
|
845
|
+
output.puts "help to the music"
|
846
|
+
end
|
611
847
|
end
|
612
|
-
end
|
613
848
|
|
614
|
-
|
615
|
-
|
849
|
+
# suppress evaluation output
|
850
|
+
Pry.print = proc {}
|
616
851
|
|
617
|
-
|
618
|
-
|
619
|
-
|
852
|
+
str_output = StringIO.new
|
853
|
+
Pry.new(:input => InputTester.new("jump-to"), :output => str_output, :commands => klass).rep
|
854
|
+
str_output.string.rstrip.should == "jump-to the music"
|
620
855
|
|
621
|
-
|
622
|
-
|
623
|
-
|
856
|
+
str_output = StringIO.new
|
857
|
+
Pry.new(:input => InputTester.new("help"), :output => str_output, :commands => klass).rep
|
858
|
+
str_output.string.rstrip.should == "help to the music"
|
624
859
|
|
625
860
|
|
626
|
-
|
627
|
-
|
861
|
+
Pry.reset_defaults
|
862
|
+
Pry.color = false
|
863
|
+
end
|
628
864
|
end
|
629
|
-
end
|
630
|
-
|
631
|
-
it "should set the print default, and the default should be overridable" do
|
632
|
-
new_print = proc { |out, value| out.puts value }
|
633
|
-
Pry.print = new_print
|
634
865
|
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
str_output.string.should == "test\n"
|
866
|
+
it "should set the print default, and the default should be overridable" do
|
867
|
+
new_print = proc { |out, value| out.puts value }
|
868
|
+
Pry.print = new_print
|
639
869
|
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
870
|
+
Pry.new.print.should == Pry.print
|
871
|
+
str_output = StringIO.new
|
872
|
+
Pry.new(:input => InputTester.new("\"test\""), :output => str_output).rep
|
873
|
+
str_output.string.should == "test\n"
|
644
874
|
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
end
|
875
|
+
str_output = StringIO.new
|
876
|
+
Pry.new(:input => InputTester.new("\"test\""), :output => str_output,
|
877
|
+
:print => proc { |out, value| out.puts value.reverse }).rep
|
878
|
+
str_output.string.should == "tset\n"
|
650
879
|
|
651
|
-
|
652
|
-
|
653
|
-
Pry.
|
880
|
+
Pry.new.print.should == Pry.print
|
881
|
+
str_output = StringIO.new
|
882
|
+
Pry.new(:input => InputTester.new("\"test\""), :output => str_output).rep
|
883
|
+
str_output.string.should == "test\n"
|
654
884
|
end
|
655
885
|
|
656
|
-
|
657
|
-
|
658
|
-
|
886
|
+
describe "pry return values" do
|
887
|
+
it 'should return the target object' do
|
888
|
+
Pry.start(self, :input => StringIO.new("exit"), :output => Pry::NullOutput).should == self
|
889
|
+
end
|
659
890
|
|
660
|
-
|
661
|
-
|
662
|
-
|
891
|
+
it 'should return the parameter given to exit' do
|
892
|
+
Pry.start(self, :input => StringIO.new("exit 10"), :output => Pry::NullOutput).should == 10
|
893
|
+
end
|
663
894
|
|
664
|
-
|
665
|
-
|
666
|
-
|
895
|
+
it 'should return the parameter (multi word string) given to exit' do
|
896
|
+
Pry.start(self, :input => StringIO.new("exit \"john mair\""), :output => Pry::NullOutput).should == "john mair"
|
897
|
+
end
|
667
898
|
|
668
|
-
|
669
|
-
|
899
|
+
it 'should return the parameter (function call) given to exit' do
|
900
|
+
Pry.start(self, :input => StringIO.new("exit 'abc'.reverse"), :output => Pry::NullOutput).should == 'cba'
|
901
|
+
end
|
902
|
+
|
903
|
+
it 'should return the parameter (self) given to exit' do
|
904
|
+
Pry.start("carl", :input => StringIO.new("exit self"), :output => Pry::NullOutput).should == "carl"
|
905
|
+
end
|
670
906
|
end
|
671
|
-
end
|
672
907
|
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
908
|
+
describe "prompts" do
|
909
|
+
it 'should set the prompt default, and the default should be overridable (single prompt)' do
|
910
|
+
new_prompt = proc { "test prompt> " }
|
911
|
+
Pry.prompt = new_prompt
|
677
912
|
|
678
|
-
|
679
|
-
|
680
|
-
|
913
|
+
Pry.new.prompt.should == Pry.prompt
|
914
|
+
Pry.new.select_prompt(true, 0).should == "test prompt> "
|
915
|
+
Pry.new.select_prompt(false, 0).should == "test prompt> "
|
681
916
|
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
686
|
-
|
917
|
+
new_prompt = proc { "A" }
|
918
|
+
pry_tester = Pry.new(:prompt => new_prompt)
|
919
|
+
pry_tester.prompt.should == new_prompt
|
920
|
+
pry_tester.select_prompt(true, 0).should == "A"
|
921
|
+
pry_tester.select_prompt(false, 0).should == "A"
|
687
922
|
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
923
|
+
Pry.new.prompt.should == Pry.prompt
|
924
|
+
Pry.new.select_prompt(true, 0).should == "test prompt> "
|
925
|
+
Pry.new.select_prompt(false, 0).should == "test prompt> "
|
926
|
+
end
|
692
927
|
|
693
|
-
|
694
|
-
|
695
|
-
|
928
|
+
it 'should set the prompt default, and the default should be overridable (multi prompt)' do
|
929
|
+
new_prompt = [proc { "test prompt> " }, proc { "test prompt* " }]
|
930
|
+
Pry.prompt = new_prompt
|
696
931
|
|
697
|
-
|
698
|
-
|
699
|
-
|
932
|
+
Pry.new.prompt.should == Pry.prompt
|
933
|
+
Pry.new.select_prompt(true, 0).should == "test prompt> "
|
934
|
+
Pry.new.select_prompt(false, 0).should == "test prompt* "
|
700
935
|
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
936
|
+
new_prompt = [proc { "A" }, proc { "B" }]
|
937
|
+
pry_tester = Pry.new(:prompt => new_prompt)
|
938
|
+
pry_tester.prompt.should == new_prompt
|
939
|
+
pry_tester.select_prompt(true, 0).should == "A"
|
940
|
+
pry_tester.select_prompt(false, 0).should == "B"
|
706
941
|
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
942
|
+
Pry.new.prompt.should == Pry.prompt
|
943
|
+
Pry.new.select_prompt(true, 0).should == "test prompt> "
|
944
|
+
Pry.new.select_prompt(false, 0).should == "test prompt* "
|
945
|
+
end
|
711
946
|
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
@pry.prompt.should == @b
|
728
|
-
@pry.pop_prompt
|
729
|
-
@pry.prompt.should == @a
|
730
|
-
end
|
731
|
-
|
732
|
-
it 'should restore overridden prompts when returning from file-mode' do
|
733
|
-
pry = Pry.new :input => InputTester.new('shell-mode', 'shell-mode'),
|
734
|
-
:prompt => [ proc { 'P>' } ] * 2
|
735
|
-
pry.select_prompt(true, 0).should == "P>"
|
736
|
-
pry.re
|
737
|
-
pry.select_prompt(true, 0).should =~ /\Apry .* \$ \z/
|
738
|
-
pry.re
|
739
|
-
pry.select_prompt(true, 0).should == "P>"
|
740
|
-
end
|
741
|
-
|
742
|
-
it '#pop_prompt should return the popped prompt' do
|
743
|
-
@pry.push_prompt @b
|
744
|
-
@pry.push_prompt @c
|
745
|
-
@pry.pop_prompt.should == @c
|
746
|
-
@pry.pop_prompt.should == @b
|
747
|
-
end
|
748
|
-
|
749
|
-
it 'should not pop the last prompt' do
|
750
|
-
@pry.push_prompt @b
|
751
|
-
@pry.pop_prompt.should == @b
|
752
|
-
@pry.pop_prompt.should == @a
|
753
|
-
@pry.pop_prompt.should == @a
|
754
|
-
@pry.prompt.should == @a
|
755
|
-
end
|
756
|
-
|
757
|
-
describe '#prompt= should replace the current prompt with the new prompt' do
|
758
|
-
it 'when only one prompt on the stack' do
|
759
|
-
@pry.prompt = @b
|
947
|
+
describe 'storing and restoring the prompt' do
|
948
|
+
before do
|
949
|
+
make = lambda do |name,i|
|
950
|
+
prompt = [ proc { "#{i}>" } , proc { "#{i+1}>" } ]
|
951
|
+
(class << prompt; self; end).send(:define_method, :inspect) { "<Prompt-#{name}>" }
|
952
|
+
prompt
|
953
|
+
end
|
954
|
+
@a , @b , @c = make[:a,0] , make[:b,1] , make[:c,2]
|
955
|
+
@pry = Pry.new :prompt => @a
|
956
|
+
end
|
957
|
+
it 'should have a prompt stack' do
|
958
|
+
@pry.push_prompt @b
|
959
|
+
@pry.push_prompt @c
|
960
|
+
@pry.prompt.should == @c
|
961
|
+
@pry.pop_prompt
|
760
962
|
@pry.prompt.should == @b
|
761
|
-
@pry.pop_prompt
|
762
|
-
@pry.
|
963
|
+
@pry.pop_prompt
|
964
|
+
@pry.prompt.should == @a
|
763
965
|
end
|
764
|
-
|
966
|
+
|
967
|
+
it 'should restore overridden prompts when returning from file-mode' do
|
968
|
+
pry = Pry.new :input => InputTester.new('shell-mode', 'shell-mode'),
|
969
|
+
:prompt => [ proc { 'P>' } ] * 2
|
970
|
+
pry.select_prompt(true, 0).should == "P>"
|
971
|
+
pry.re
|
972
|
+
pry.select_prompt(true, 0).should =~ /\Apry .* \$ \z/
|
973
|
+
pry.re
|
974
|
+
pry.select_prompt(true, 0).should == "P>"
|
975
|
+
end
|
976
|
+
|
977
|
+
it '#pop_prompt should return the popped prompt' do
|
765
978
|
@pry.push_prompt @b
|
766
|
-
@pry.
|
979
|
+
@pry.push_prompt @c
|
767
980
|
@pry.pop_prompt.should == @c
|
981
|
+
@pry.pop_prompt.should == @b
|
982
|
+
end
|
983
|
+
|
984
|
+
it 'should not pop the last prompt' do
|
985
|
+
@pry.push_prompt @b
|
986
|
+
@pry.pop_prompt.should == @b
|
987
|
+
@pry.pop_prompt.should == @a
|
768
988
|
@pry.pop_prompt.should == @a
|
989
|
+
@pry.prompt.should == @a
|
990
|
+
end
|
991
|
+
|
992
|
+
describe '#prompt= should replace the current prompt with the new prompt' do
|
993
|
+
it 'when only one prompt on the stack' do
|
994
|
+
@pry.prompt = @b
|
995
|
+
@pry.prompt.should == @b
|
996
|
+
@pry.pop_prompt.should == @b
|
997
|
+
@pry.pop_prompt.should == @b
|
998
|
+
end
|
999
|
+
it 'when several prompts on the stack' do
|
1000
|
+
@pry.push_prompt @b
|
1001
|
+
@pry.prompt = @c
|
1002
|
+
@pry.pop_prompt.should == @c
|
1003
|
+
@pry.pop_prompt.should == @a
|
1004
|
+
end
|
769
1005
|
end
|
770
1006
|
end
|
771
1007
|
end
|
772
|
-
end
|
773
1008
|
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
1009
|
+
it 'should set the hooks default, and the default should be overridable' do
|
1010
|
+
Pry.input = InputTester.new("exit")
|
1011
|
+
Pry.hooks = {
|
1012
|
+
:before_session => proc { |out,_| out.puts "HELLO" },
|
1013
|
+
:after_session => proc { |out,_| out.puts "BYE" }
|
1014
|
+
}
|
780
1015
|
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
1016
|
+
str_output = StringIO.new
|
1017
|
+
Pry.new(:output => str_output).repl
|
1018
|
+
str_output.string.should =~ /HELLO/
|
1019
|
+
str_output.string.should =~ /BYE/
|
785
1020
|
|
786
|
-
|
1021
|
+
Pry.input.rewind
|
787
1022
|
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
1023
|
+
str_output = StringIO.new
|
1024
|
+
Pry.new(:output => str_output,
|
1025
|
+
:hooks => {
|
1026
|
+
:before_session => proc { |out,_| out.puts "MORNING" },
|
1027
|
+
:after_session => proc { |out,_| out.puts "EVENING" }
|
1028
|
+
}
|
1029
|
+
).repl
|
1030
|
+
|
1031
|
+
str_output.string.should =~ /MORNING/
|
1032
|
+
str_output.string.should =~ /EVENING/
|
1033
|
+
|
1034
|
+
# try below with just defining one hook
|
1035
|
+
Pry.input.rewind
|
1036
|
+
str_output = StringIO.new
|
1037
|
+
Pry.new(:output => str_output,
|
1038
|
+
:hooks => {
|
1039
|
+
:before_session => proc { |out,_| out.puts "OPEN" }
|
1040
|
+
}
|
1041
|
+
).repl
|
807
1042
|
|
808
|
-
|
1043
|
+
str_output.string.should =~ /OPEN/
|
809
1044
|
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
1045
|
+
Pry.input.rewind
|
1046
|
+
str_output = StringIO.new
|
1047
|
+
Pry.new(:output => str_output,
|
1048
|
+
:hooks => {
|
1049
|
+
:after_session => proc { |out,_| out.puts "CLOSE" }
|
1050
|
+
}
|
1051
|
+
).repl
|
817
1052
|
|
818
|
-
|
1053
|
+
str_output.string.should =~ /CLOSE/
|
819
1054
|
|
820
|
-
|
821
|
-
|
1055
|
+
Pry.reset_defaults
|
1056
|
+
Pry.color = false
|
1057
|
+
end
|
822
1058
|
end
|
823
1059
|
end
|
824
1060
|
end
|
825
1061
|
end
|
826
|
-
end
|