pry 0.9.9.6pre2-java → 0.9.10-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/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
@@ -1,15 +1,19 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
describe "Pry.config.exception_whitelist" do
|
4
|
+
before do
|
5
|
+
@str_output = StringIO.new
|
6
|
+
end
|
7
|
+
|
4
8
|
it 'should rescue all exceptions NOT specified on whitelist' do
|
5
9
|
Pry.config.exception_whitelist.include?(NameError).should == false
|
6
|
-
lambda { Pry.start(self, :input => StringIO.new("raise NameError\nexit"), :output =>
|
10
|
+
lambda { Pry.start(self, :input => StringIO.new("raise NameError\nexit"), :output => @str_output) }.should.not.raise NameError
|
7
11
|
end
|
8
12
|
|
9
13
|
it 'should NOT rescue exceptions specified on whitelist' do
|
10
14
|
old_whitelist = Pry.config.exception_whitelist
|
11
15
|
Pry.config.exception_whitelist = [NameError]
|
12
|
-
lambda { Pry.start(self, :input => StringIO.new("raise NameError"), :output =>
|
16
|
+
lambda { Pry.start(self, :input => StringIO.new("raise NameError"), :output => @str_output) }.should.raise NameError
|
13
17
|
Pry.config.exception_whitelist = old_whitelist
|
14
18
|
end
|
15
19
|
end
|
data/test/test_hooks.rb
CHANGED
@@ -316,6 +316,7 @@ describe Pry::Hooks do
|
|
316
316
|
redirect_pry_io(StringIO.new("exit"), out=StringIO.new) do
|
317
317
|
Pry.start binding, :hello => :baby
|
318
318
|
end
|
319
|
+
|
319
320
|
options[:hello].should == :baby
|
320
321
|
|
321
322
|
Pry.config.hooks.delete_hook(:when_started, :test_hook)
|
@@ -394,6 +395,37 @@ describe Pry::Hooks do
|
|
394
395
|
Pry.config.exception_whitelist = old_ew
|
395
396
|
end
|
396
397
|
|
398
|
+
describe "before_eval hook" do
|
399
|
+
describe "modifying input code" do
|
400
|
+
it 'should replace input code with code determined by hook' do
|
401
|
+
hooks = Pry::Hooks.new.add_hook(:before_eval, :quirk) { |code, pry| code.replace(":little_duck") }
|
402
|
+
redirect_pry_io(InputTester.new(":jemima", "exit-all"), out = StringIO.new) do
|
403
|
+
Pry.start(self, :hooks => hooks)
|
404
|
+
end
|
405
|
+
out.string.should =~ /little_duck/
|
406
|
+
out.string.should.not =~ /jemima/
|
407
|
+
end
|
408
|
+
|
409
|
+
it 'should not interfere with command processing when replacing input code' do
|
410
|
+
commands = Pry::CommandSet.new do
|
411
|
+
import_from Pry::Commands, "exit-all"
|
412
|
+
|
413
|
+
command "how-do-you-like-your-blue-eyed-boy-now-mister-death" do
|
414
|
+
output.puts "in hours of bitterness i imagine balls of sapphire, of metal"
|
415
|
+
end
|
416
|
+
end
|
417
|
+
|
418
|
+
hooks = Pry::Hooks.new.add_hook(:before_eval, :quirk) { |code, pry| code.replace(":little_duck") }
|
419
|
+
redirect_pry_io(InputTester.new("how-do-you-like-your-blue-eyed-boy-now-mister-death", "exit-all"), out = StringIO.new) do
|
420
|
+
Pry.start(self, :hooks => hooks, :commands => commands)
|
421
|
+
end
|
422
|
+
out.string.should =~ /in hours of bitterness i imagine balls of sapphire, of metal/
|
423
|
+
out.string.should.not =~ /little_duck/
|
424
|
+
end
|
425
|
+
end
|
426
|
+
|
427
|
+
end
|
428
|
+
|
397
429
|
describe "exceptions" do
|
398
430
|
before do
|
399
431
|
Pry.config.hooks.add_hook(:after_eval, :baddums){ raise "Baddums" }
|
data/test/test_input_stack.rb
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
require 'helper'
|
3
3
|
|
4
4
|
describe "Pry#input_stack" do
|
5
|
+
before do
|
6
|
+
@str_output = StringIO.new
|
7
|
+
end
|
8
|
+
|
5
9
|
it 'should accept :input_stack as a config option' do
|
6
10
|
stack = [StringIO.new("test")]
|
7
11
|
Pry.new(:input_stack => stack).input_stack.should == stack
|
@@ -16,30 +20,30 @@ describe "Pry#input_stack" do
|
|
16
20
|
it 'should read from all input objects on stack and exit session (usingn repl)' do
|
17
21
|
stack = [b = StringIO.new(":cloister\nexit\n"), c = StringIO.new(":baron\n")]
|
18
22
|
instance = Pry.new(:input => StringIO.new(":alex\n"),
|
19
|
-
:output => str_output
|
23
|
+
:output => @str_output,
|
20
24
|
:input_stack => stack)
|
21
25
|
|
22
26
|
instance.repl
|
23
|
-
str_output.string.should =~ /:alex/
|
24
|
-
str_output.string.should =~ /:baron/
|
25
|
-
str_output.string.should =~ /:cloister/
|
27
|
+
@str_output.string.should =~ /:alex/
|
28
|
+
@str_output.string.should =~ /:baron/
|
29
|
+
@str_output.string.should =~ /:cloister/
|
26
30
|
end
|
27
31
|
|
28
32
|
it 'input objects should be popped off stack as they are used up' do
|
29
33
|
stack = [StringIO.new(":cloister\n"), StringIO.new(":baron\n")]
|
30
34
|
instance = Pry.new(:input => StringIO.new(":alex\n"),
|
31
|
-
:output => str_output
|
35
|
+
:output => @str_output,
|
32
36
|
:input_stack => stack)
|
33
37
|
|
34
38
|
stack.size.should == 2
|
35
39
|
|
36
40
|
instance.rep
|
37
|
-
str_output.string.should =~ /:alex/
|
41
|
+
@str_output.string.should =~ /:alex/
|
38
42
|
instance.rep
|
39
|
-
str_output.string.should =~ /:baron/
|
43
|
+
@str_output.string.should =~ /:baron/
|
40
44
|
stack.size.should == 1
|
41
45
|
instance.rep
|
42
|
-
str_output.string.should =~ /:cloister/
|
46
|
+
@str_output.string.should =~ /:cloister/
|
43
47
|
stack.size.should == 0
|
44
48
|
end
|
45
49
|
|
@@ -47,25 +51,24 @@ describe "Pry#input_stack" do
|
|
47
51
|
redirect_pry_io(StringIO.new(":rimbaud\nexit\n"), StringIO.new) do
|
48
52
|
stack = [StringIO.new(":cloister\n"), StringIO.new(":baron\n")]
|
49
53
|
instance = Pry.new(:input => StringIO.new(":alex\n"),
|
50
|
-
:output => str_output
|
54
|
+
:output => @str_output,
|
51
55
|
:input_stack => stack)
|
52
56
|
|
53
57
|
instance.repl
|
54
|
-
str_output.string.should =~ /:alex/
|
55
|
-
str_output.string.should =~ /:baron/
|
56
|
-
str_output.string.should =~ /:cloister/
|
57
|
-
str_output.string.should =~ /:rimbaud/
|
58
|
+
@str_output.string.should =~ /:alex/
|
59
|
+
@str_output.string.should =~ /:baron/
|
60
|
+
@str_output.string.should =~ /:cloister/
|
61
|
+
@str_output.string.should =~ /:rimbaud/
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
61
65
|
it 'should display error and throw(:breakout) if at end of input after using up input_stack objects' do
|
62
|
-
str_output = StringIO.new
|
63
66
|
catch(:breakout) do
|
64
|
-
redirect_pry_io(StringIO.new(":rimbaud\n"), str_output) do
|
67
|
+
redirect_pry_io(StringIO.new(":rimbaud\n"), @str_output) do
|
65
68
|
Pry.new(:input_stack => [StringIO.new(":a\n"), StringIO.new(":b\n")]).repl
|
66
69
|
end
|
67
70
|
end
|
68
|
-
str_output.string.should =~ /Error: Pry ran out of things to read/
|
71
|
+
@str_output.string.should =~ /Error: Pry ran out of things to read/
|
69
72
|
end
|
70
73
|
|
71
74
|
if "".respond_to?(:encoding)
|
data/test/test_method.rb
CHANGED
@@ -79,10 +79,6 @@ describe Pry::Method do
|
|
79
79
|
Pry::Method.from_binding(Class.new{ def self.foo; binding; end }.foo).name.should == "foo"
|
80
80
|
end
|
81
81
|
|
82
|
-
it 'should NOT find a method from the special pry bindings' do
|
83
|
-
Pry::Method.from_binding(5.__binding__).should == nil
|
84
|
-
end
|
85
|
-
|
86
82
|
it 'should NOT find a method from the toplevel binding' do
|
87
83
|
Pry::Method.from_binding(TOPLEVEL_BINDING).should == nil
|
88
84
|
end
|
data/test/test_prompt.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe "Prompts" do
|
4
|
+
describe "one-parameter prompt proc" do
|
5
|
+
it 'should get full config object' do
|
6
|
+
config = nil
|
7
|
+
redirect_pry_io(InputTester.new("exit-all")) do
|
8
|
+
Pry.start(self, :prompt => proc { |v| config = v })
|
9
|
+
end
|
10
|
+
config.is_a?(OpenStruct).should == true
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should get full config object, when using a proc array' do
|
14
|
+
config1 = nil
|
15
|
+
redirect_pry_io(InputTester.new("exit-all")) do
|
16
|
+
Pry.start(self, :prompt => [proc { |v| config1 = v }, proc { |v| config2 = v }])
|
17
|
+
end
|
18
|
+
config1.is_a?(OpenStruct).should == true
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should receive correct data in the config object' do
|
22
|
+
config = nil
|
23
|
+
redirect_pry_io(InputTester.new("def hello", "exit-all")) do
|
24
|
+
Pry.start(self, :prompt => proc { |v| config = v })
|
25
|
+
end
|
26
|
+
config.eval_string.should =~ /def hello/
|
27
|
+
config.nesting_level.should == 0
|
28
|
+
config.expr_number.should == 1
|
29
|
+
config.cont.should == true
|
30
|
+
config._pry_.is_a?(Pry).should == true
|
31
|
+
config.object.should == self
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe "BACKWARDS COMPATIBILITY: 3 parameter prompt proc" do
|
36
|
+
it 'should get 3 parameters' do
|
37
|
+
o = n = p = nil
|
38
|
+
redirect_pry_io(InputTester.new("exit-all")) do
|
39
|
+
Pry.start(:test, :prompt => proc { |obj, nesting, _pry_|
|
40
|
+
o, n, p = obj, nesting, _pry_ })
|
41
|
+
end
|
42
|
+
o.should == :test
|
43
|
+
n.should == 0
|
44
|
+
p.is_a?(Pry).should == true
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should get 3 parameters, when using proc array' do
|
48
|
+
o1 = n1 = p1 = nil
|
49
|
+
redirect_pry_io(InputTester.new("exit-all")) do
|
50
|
+
Pry.start(:test, :prompt => [proc { |obj, nesting, _pry_|
|
51
|
+
o1, n1, p1 = obj, nesting, _pry_ },
|
52
|
+
proc { |obj, nesting, _pry_|
|
53
|
+
o2, n2, p2 = obj, nesting, _pry_ }])
|
54
|
+
end
|
55
|
+
o1.should == :test
|
56
|
+
n1.should == 0
|
57
|
+
p1.is_a?(Pry).should == true
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/test/test_pry.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
3
|
describe Pry do
|
4
|
+
before do
|
5
|
+
@str_output = StringIO.new
|
6
|
+
end
|
4
7
|
|
5
8
|
if RUBY_VERSION =~ /1.9/
|
6
9
|
describe "Exotic object support" do
|
@@ -44,10 +47,9 @@ describe Pry do
|
|
44
47
|
# bug fix for https://github.com/banister/pry/issues/93
|
45
48
|
it 'should not leak pry constants into Object namespace' do
|
46
49
|
input_string = "Command"
|
47
|
-
str_output = StringIO.new
|
48
50
|
o = Object.new
|
49
51
|
pry_tester = Pry.new(:input => StringIO.new(input_string),
|
50
|
-
:output => str_output,
|
52
|
+
:output => @str_output,
|
51
53
|
:exception_handler => proc { |_, exception, _pry_| @excep = exception },
|
52
54
|
:print => proc {}
|
53
55
|
).rep(o)
|
@@ -57,12 +59,11 @@ describe Pry do
|
|
57
59
|
|
58
60
|
if defined?(BasicObject)
|
59
61
|
it 'should be able to operate inside the BasicObject class' do
|
60
|
-
|
61
|
-
redirect_pry_io(InputTester.new(":foo", "$obj = _", "exit-all"), StringIO.new) do
|
62
|
+
redirect_pry_io(InputTester.new(":foo", "Pad.obj = _", "exit-all")) do
|
62
63
|
BasicObject.pry
|
63
64
|
end
|
64
|
-
|
65
|
-
|
65
|
+
|
66
|
+
Pad.obj.should == :foo
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
@@ -77,31 +78,28 @@ describe Pry do
|
|
77
78
|
end
|
78
79
|
|
79
80
|
it 'should display error and throw(:breakout) if Pry instance runs out of input' do
|
80
|
-
str_output = StringIO.new
|
81
81
|
catch(:breakout) do
|
82
|
-
redirect_pry_io(StringIO.new(":nothing\n"), str_output) do
|
82
|
+
redirect_pry_io(StringIO.new(":nothing\n"), @str_output) do
|
83
83
|
Pry.new.repl
|
84
84
|
end
|
85
85
|
end
|
86
|
-
str_output.string.should =~ /Error: Pry ran out of things to read/
|
86
|
+
@str_output.string.should =~ /Error: Pry ran out of things to read/
|
87
87
|
end
|
88
88
|
|
89
89
|
it 'should make self evaluate to the receiver of the rep session' do
|
90
90
|
o = :john
|
91
|
-
str_output = StringIO.new
|
92
91
|
|
93
|
-
pry_tester = Pry.new(:input => InputTester.new("self"), :output => str_output)
|
92
|
+
pry_tester = Pry.new(:input => InputTester.new("self"), :output => @str_output)
|
94
93
|
pry_tester.rep(o)
|
95
|
-
str_output.string.should =~ /:john/
|
94
|
+
@str_output.string.should =~ /:john/
|
96
95
|
end
|
97
96
|
|
98
97
|
it 'should work with multi-line input' do
|
99
98
|
o = Object.new
|
100
|
-
str_output = StringIO.new
|
101
99
|
|
102
|
-
pry_tester = Pry.new(:input => InputTester.new("x = ", "1 + 4"), :output => str_output)
|
100
|
+
pry_tester = Pry.new(:input => InputTester.new("x = ", "1 + 4"), :output => @str_output)
|
103
101
|
pry_tester.rep(o)
|
104
|
-
str_output.string.should =~ /5/
|
102
|
+
@str_output.string.should =~ /5/
|
105
103
|
end
|
106
104
|
|
107
105
|
it 'should define a nested class under Hello and not on top-level or Pry' do
|
@@ -112,38 +110,34 @@ describe Pry do
|
|
112
110
|
|
113
111
|
it 'should suppress output if input ends in a ";" and is an Exception object (single line)' do
|
114
112
|
o = Object.new
|
115
|
-
str_output = StringIO.new
|
116
113
|
|
117
|
-
pry_tester = Pry.new(:input => InputTester.new("Exception.new;"), :output => str_output)
|
114
|
+
pry_tester = Pry.new(:input => InputTester.new("Exception.new;"), :output => @str_output)
|
118
115
|
pry_tester.rep(o)
|
119
|
-
str_output.string.should == ""
|
116
|
+
@str_output.string.should == ""
|
120
117
|
end
|
121
118
|
|
122
119
|
it 'should suppress output if input ends in a ";" (single line)' do
|
123
120
|
o = Object.new
|
124
|
-
str_output = StringIO.new
|
125
121
|
|
126
|
-
pry_tester = Pry.new(:input => InputTester.new("x = 5;"), :output => str_output)
|
122
|
+
pry_tester = Pry.new(:input => InputTester.new("x = 5;"), :output => @str_output)
|
127
123
|
pry_tester.rep(o)
|
128
|
-
str_output.string.should == ""
|
124
|
+
@str_output.string.should == ""
|
129
125
|
end
|
130
126
|
|
131
127
|
it 'should suppress output if input ends in a ";" (multi-line)' do
|
132
128
|
o = Object.new
|
133
|
-
str_output = StringIO.new
|
134
129
|
|
135
|
-
pry_tester = Pry.new(:input => InputTester.new("def self.blah", ":test", "end;"), :output => str_output)
|
130
|
+
pry_tester = Pry.new(:input => InputTester.new("def self.blah", ":test", "end;"), :output => @str_output)
|
136
131
|
pry_tester.rep(o)
|
137
|
-
str_output.string.should == ""
|
132
|
+
@str_output.string.should == ""
|
138
133
|
end
|
139
134
|
|
140
135
|
it 'should be able to evaluate exceptions normally' do
|
141
136
|
o = Exception.new
|
142
|
-
str_output = StringIO.new
|
143
137
|
|
144
138
|
was_called = false
|
145
139
|
pry_tester = Pry.new(:input => InputTester.new("self"),
|
146
|
-
:output => str_output,
|
140
|
+
:output => @str_output,
|
147
141
|
:exception_handler => proc { was_called = true })
|
148
142
|
|
149
143
|
pry_tester.rep(o)
|
@@ -152,11 +146,10 @@ describe Pry do
|
|
152
146
|
|
153
147
|
it 'should notice when exceptions are raised' do
|
154
148
|
o = Exception.new
|
155
|
-
str_output = StringIO.new
|
156
149
|
|
157
150
|
was_called = false
|
158
151
|
pry_tester = Pry.new(:input => InputTester.new("raise self"),
|
159
|
-
:output => str_output,
|
152
|
+
:output => @str_output,
|
160
153
|
:exception_handler => proc { was_called = true })
|
161
154
|
|
162
155
|
pry_tester.rep(o)
|
@@ -370,13 +363,12 @@ describe Pry do
|
|
370
363
|
it 'should nest properly' do
|
371
364
|
Pry.input = InputTester.new("cd 1", "cd 2", "cd 3", "\"nest:\#\{(_pry_.binding_stack.size - 1)\}\"", "exit-all")
|
372
365
|
|
373
|
-
|
374
|
-
Pry.output = str_output
|
366
|
+
Pry.output = @str_output
|
375
367
|
|
376
368
|
o = Object.new
|
377
369
|
|
378
370
|
pry_tester = o.pry
|
379
|
-
str_output.string.should =~ /nest:3/
|
371
|
+
@str_output.string.should =~ /nest:3/
|
380
372
|
end
|
381
373
|
end
|
382
374
|
|
data/test/test_pry_defaults.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
require 'helper'
|
2
|
+
|
3
|
+
version = 1
|
4
|
+
|
2
5
|
describe "test Pry defaults" do
|
6
|
+
before do
|
7
|
+
@str_output = StringIO.new
|
8
|
+
end
|
3
9
|
|
4
10
|
after do
|
5
11
|
Pry.reset_defaults
|
@@ -7,7 +13,6 @@ describe "test Pry defaults" do
|
|
7
13
|
end
|
8
14
|
|
9
15
|
describe "input" do
|
10
|
-
|
11
16
|
after do
|
12
17
|
Pry.reset_defaults
|
13
18
|
Pry.color = false
|
@@ -16,13 +21,12 @@ describe "test Pry defaults" do
|
|
16
21
|
it 'should set the input default, and the default should be overridable' do
|
17
22
|
Pry.input = InputTester.new("5")
|
18
23
|
|
19
|
-
|
20
|
-
Pry.output = str_output
|
24
|
+
Pry.output = @str_output
|
21
25
|
Pry.new.rep
|
22
|
-
str_output.string.should =~ /5/
|
26
|
+
@str_output.string.should =~ /5/
|
23
27
|
|
24
28
|
Pry.new(:input => InputTester.new("6")).rep
|
25
|
-
str_output.string.should =~ /6/
|
29
|
+
@str_output.string.should =~ /6/
|
26
30
|
end
|
27
31
|
|
28
32
|
it 'should pass in the prompt if readline arity is 1' do
|
@@ -73,19 +77,18 @@ describe "test Pry defaults" do
|
|
73
77
|
it 'should set the output default, and the default should be overridable' do
|
74
78
|
Pry.input = InputTester.new("5", "6", "7")
|
75
79
|
|
76
|
-
|
77
|
-
Pry.output = str_output
|
80
|
+
Pry.output = @str_output
|
78
81
|
|
79
82
|
Pry.new.rep
|
80
|
-
str_output.string.should =~ /5/
|
83
|
+
@str_output.string.should =~ /5/
|
81
84
|
|
82
85
|
Pry.new.rep
|
83
|
-
str_output.string.should =~ /5\n.*6/
|
86
|
+
@str_output.string.should =~ /5\n.*6/
|
84
87
|
|
85
|
-
|
86
|
-
Pry.new(:output =>
|
87
|
-
|
88
|
-
|
88
|
+
@str_output = StringIO.new
|
89
|
+
Pry.new(:output => @str_output).rep
|
90
|
+
@str_output.string.should.not =~ /5\n.*6/
|
91
|
+
@str_output.string.should =~ /7/
|
89
92
|
end
|
90
93
|
|
91
94
|
it "should set the print default, and the default should be overridable" do
|
@@ -93,19 +96,18 @@ describe "test Pry defaults" do
|
|
93
96
|
Pry.print = new_print
|
94
97
|
|
95
98
|
Pry.new.print.should == Pry.print
|
96
|
-
|
97
|
-
|
98
|
-
str_output.string.should == "test\n"
|
99
|
+
Pry.new(:input => InputTester.new("\"test\""), :output => @str_output).rep
|
100
|
+
@str_output.string.should == "test\n"
|
99
101
|
|
100
|
-
str_output = StringIO.new
|
101
|
-
Pry.new(:input => InputTester.new("\"test\""), :output => str_output,
|
102
|
+
@str_output = StringIO.new
|
103
|
+
Pry.new(:input => InputTester.new("\"test\""), :output => @str_output,
|
102
104
|
:print => proc { |out, value| out.puts value.reverse }).rep
|
103
|
-
str_output.string.should == "tset\n"
|
105
|
+
@str_output.string.should == "tset\n"
|
104
106
|
|
105
107
|
Pry.new.print.should == Pry.print
|
106
|
-
str_output = StringIO.new
|
107
|
-
Pry.new(:input => InputTester.new("\"test\""), :output => str_output).rep
|
108
|
-
str_output.string.should == "test\n"
|
108
|
+
@str_output = StringIO.new
|
109
|
+
Pry.new(:input => InputTester.new("\"test\""), :output => @str_output).rep
|
110
|
+
@str_output.string.should == "test\n"
|
109
111
|
end
|
110
112
|
|
111
113
|
describe "pry return values" do
|
@@ -332,70 +334,86 @@ describe "test Pry defaults" do
|
|
332
334
|
|
333
335
|
end
|
334
336
|
|
337
|
+
describe 'quiet' do
|
338
|
+
it 'should show whereami by default' do
|
339
|
+
Pry.start(binding, :input => InputTester.new("1", "exit-all"),
|
340
|
+
:output => @str_output,
|
341
|
+
:hooks => Pry::DEFAULT_HOOKS)
|
342
|
+
|
343
|
+
@str_output.string.should =~ /[w]hereami by default/
|
344
|
+
end
|
345
|
+
|
346
|
+
it 'should hide whereami if quiet is set' do
|
347
|
+
Pry.new(:input => InputTester.new("exit-all"),
|
348
|
+
:output => @str_output,
|
349
|
+
:quiet => true,
|
350
|
+
:hooks => Pry::DEFAULT_HOOKS)
|
351
|
+
|
352
|
+
@str_output.string.should == ""
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
356
|
+
describe 'toplevel_binding' do
|
357
|
+
it 'should be devoid of local variables' do
|
358
|
+
mock_pry(Pry.toplevel_binding, "ls -l").should.not =~ /version/
|
359
|
+
end
|
360
|
+
|
361
|
+
it 'should have self the same as TOPLEVEL_BINDING' do
|
362
|
+
mock_pry(Pry.toplevel_binding, "self.equal? TOPLEVEL_BINDING.eval('self')").should =~ /=> true/
|
363
|
+
end
|
364
|
+
|
365
|
+
# https://github.com/rubinius/rubinius/issues/1779
|
366
|
+
unless Pry::Helpers::BaseHelpers.rbx?
|
367
|
+
it 'should define private methods on Object' do
|
368
|
+
mock_pry(TOPLEVEL_BINDING, "def gooey_fooey; end")
|
369
|
+
method(:gooey_fooey).owner.should == Object
|
370
|
+
Pry::Method(method(:gooey_fooey)).visibility.should == :private
|
371
|
+
end
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
335
375
|
it 'should set the hooks default, and the default should be overridable' do
|
336
376
|
Pry.input = InputTester.new("exit-all")
|
337
377
|
Pry.hooks = Pry::Hooks.new.
|
338
378
|
add_hook(:before_session, :my_name) { |out,_,_| out.puts "HELLO" }.
|
339
379
|
add_hook(:after_session, :my_name) { |out,_,_| out.puts "BYE" }
|
340
380
|
|
341
|
-
|
342
|
-
|
343
|
-
str_output.string.should =~ /
|
344
|
-
str_output.string.should =~ /BYE/
|
381
|
+
Pry.new(:output => @str_output).repl
|
382
|
+
@str_output.string.should =~ /HELLO/
|
383
|
+
@str_output.string.should =~ /BYE/
|
345
384
|
|
346
385
|
Pry.input.rewind
|
347
386
|
|
348
|
-
str_output = StringIO.new
|
349
|
-
Pry.new(:output => str_output,
|
387
|
+
@str_output = StringIO.new
|
388
|
+
Pry.new(:output => @str_output,
|
350
389
|
:hooks => Pry::Hooks.new.
|
351
390
|
add_hook( :before_session, :my_name) { |out,_,_| out.puts "MORNING" }.
|
352
391
|
add_hook(:after_session, :my_name) { |out,_,_| out.puts "EVENING" }
|
353
392
|
).repl
|
354
393
|
|
355
|
-
str_output.string.should =~ /MORNING/
|
356
|
-
str_output.string.should =~ /EVENING/
|
394
|
+
@str_output.string.should =~ /MORNING/
|
395
|
+
@str_output.string.should =~ /EVENING/
|
357
396
|
|
358
397
|
# try below with just defining one hook
|
359
398
|
Pry.input.rewind
|
360
|
-
str_output = StringIO.new
|
361
|
-
Pry.new(:output => str_output,
|
399
|
+
@str_output = StringIO.new
|
400
|
+
Pry.new(:output => @str_output,
|
362
401
|
:hooks => Pry::Hooks.new.
|
363
402
|
add_hook(:before_session, :my_name) { |out,_,_| out.puts "OPEN" }
|
364
403
|
).repl
|
365
404
|
|
366
|
-
str_output.string.should =~ /OPEN/
|
405
|
+
@str_output.string.should =~ /OPEN/
|
367
406
|
|
368
407
|
Pry.input.rewind
|
369
|
-
str_output = StringIO.new
|
370
|
-
Pry.new(:output => str_output,
|
408
|
+
@str_output = StringIO.new
|
409
|
+
Pry.new(:output => @str_output,
|
371
410
|
:hooks => Pry::Hooks.new.
|
372
411
|
add_hook(:after_session, :my_name) { |out,_,_| out.puts "CLOSE" }
|
373
412
|
).repl
|
374
413
|
|
375
|
-
str_output.string.should =~ /CLOSE/
|
414
|
+
@str_output.string.should =~ /CLOSE/
|
376
415
|
|
377
416
|
Pry.reset_defaults
|
378
417
|
Pry.color = false
|
379
418
|
end
|
380
|
-
|
381
|
-
describe 'quiet' do
|
382
|
-
it 'should show whereami by default' do
|
383
|
-
output = StringIO.new
|
384
|
-
Pry.start(binding, :input => InputTester.new("1", "exit-all"),
|
385
|
-
:output => output,
|
386
|
-
:hooks => Pry::DEFAULT_HOOKS)
|
387
|
-
|
388
|
-
output.string.should =~ /[w]hereami by default/
|
389
|
-
end
|
390
|
-
|
391
|
-
it 'should hide whereami if quiet is set' do
|
392
|
-
output = StringIO.new
|
393
|
-
Pry.new(:input => InputTester.new("exit-all"),
|
394
|
-
:output => output,
|
395
|
-
:quiet => true,
|
396
|
-
:hooks => Pry::DEFAULT_HOOKS)
|
397
|
-
|
398
|
-
output.string.should == ""
|
399
|
-
end
|
400
|
-
end
|
401
419
|
end
|