pry 0.9.12.6-i386-mswin32 → 0.10.0-i386-mswin32

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.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +702 -0
  3. data/LICENSE +2 -2
  4. data/{README.markdown → README.md} +37 -31
  5. data/lib/pry.rb +38 -151
  6. data/lib/pry/cli.rb +35 -17
  7. data/lib/pry/code.rb +19 -63
  8. data/lib/pry/code/code_file.rb +103 -0
  9. data/lib/pry/code/code_range.rb +2 -1
  10. data/lib/pry/code/loc.rb +2 -2
  11. data/lib/pry/code_object.rb +40 -21
  12. data/lib/pry/color_printer.rb +55 -0
  13. data/lib/pry/command.rb +12 -9
  14. data/lib/pry/command_set.rb +81 -38
  15. data/lib/pry/commands.rb +1 -1
  16. data/lib/pry/commands/amend_line.rb +2 -2
  17. data/lib/pry/commands/bang.rb +1 -1
  18. data/lib/pry/commands/cat.rb +11 -2
  19. data/lib/pry/commands/cat/exception_formatter.rb +6 -7
  20. data/lib/pry/commands/cat/file_formatter.rb +15 -32
  21. data/lib/pry/commands/cat/input_expression_formatter.rb +1 -1
  22. data/lib/pry/commands/cd.rb +14 -3
  23. data/lib/pry/commands/change_inspector.rb +27 -0
  24. data/lib/pry/commands/change_prompt.rb +26 -0
  25. data/lib/pry/commands/code_collector.rb +4 -4
  26. data/lib/pry/commands/easter_eggs.rb +3 -3
  27. data/lib/pry/commands/edit.rb +10 -22
  28. data/lib/pry/commands/edit/exception_patcher.rb +2 -2
  29. data/lib/pry/commands/edit/file_and_line_locator.rb +0 -2
  30. data/lib/pry/commands/exit_program.rb +0 -1
  31. data/lib/pry/commands/find_method.rb +16 -22
  32. data/lib/pry/commands/gem_install.rb +5 -2
  33. data/lib/pry/commands/gem_open.rb +1 -1
  34. data/lib/pry/commands/gist.rb +10 -11
  35. data/lib/pry/commands/help.rb +14 -14
  36. data/lib/pry/commands/hist.rb +27 -8
  37. data/lib/pry/commands/install_command.rb +14 -12
  38. data/lib/pry/commands/list_inspectors.rb +35 -0
  39. data/lib/pry/commands/list_prompts.rb +35 -0
  40. data/lib/pry/commands/ls.rb +72 -296
  41. data/lib/pry/commands/ls/constants.rb +47 -0
  42. data/lib/pry/commands/ls/formatter.rb +49 -0
  43. data/lib/pry/commands/ls/globals.rb +48 -0
  44. data/lib/pry/commands/ls/grep.rb +21 -0
  45. data/lib/pry/commands/ls/instance_vars.rb +39 -0
  46. data/lib/pry/commands/ls/interrogatable.rb +18 -0
  47. data/lib/pry/commands/ls/jruby_hacks.rb +49 -0
  48. data/lib/pry/commands/ls/local_names.rb +35 -0
  49. data/lib/pry/commands/ls/local_vars.rb +39 -0
  50. data/lib/pry/commands/ls/ls_entity.rb +70 -0
  51. data/lib/pry/commands/ls/methods.rb +57 -0
  52. data/lib/pry/commands/ls/methods_helper.rb +46 -0
  53. data/lib/pry/commands/ls/self_methods.rb +32 -0
  54. data/lib/pry/commands/play.rb +44 -10
  55. data/lib/pry/commands/pry_backtrace.rb +1 -2
  56. data/lib/pry/commands/raise_up.rb +2 -2
  57. data/lib/pry/commands/reload_code.rb +16 -19
  58. data/lib/pry/commands/ri.rb +7 -3
  59. data/lib/pry/commands/shell_command.rb +18 -13
  60. data/lib/pry/commands/shell_mode.rb +2 -4
  61. data/lib/pry/commands/show_doc.rb +5 -0
  62. data/lib/pry/commands/show_info.rb +8 -13
  63. data/lib/pry/commands/show_source.rb +15 -3
  64. data/lib/pry/commands/simple_prompt.rb +1 -1
  65. data/lib/pry/commands/toggle_color.rb +8 -4
  66. data/lib/pry/commands/watch_expression.rb +105 -0
  67. data/lib/pry/commands/watch_expression/expression.rb +38 -0
  68. data/lib/pry/commands/whereami.rb +18 -10
  69. data/lib/pry/commands/wtf.rb +3 -3
  70. data/lib/pry/config.rb +20 -254
  71. data/lib/pry/config/behavior.rb +139 -0
  72. data/lib/pry/config/convenience.rb +26 -0
  73. data/lib/pry/config/default.rb +165 -0
  74. data/lib/pry/core_extensions.rb +31 -21
  75. data/lib/pry/editor.rb +107 -103
  76. data/lib/pry/exceptions.rb +77 -0
  77. data/lib/pry/helpers/base_helpers.rb +22 -109
  78. data/lib/pry/helpers/command_helpers.rb +10 -8
  79. data/lib/pry/helpers/documentation_helpers.rb +1 -2
  80. data/lib/pry/helpers/text.rb +4 -5
  81. data/lib/pry/history.rb +46 -45
  82. data/lib/pry/history_array.rb +6 -1
  83. data/lib/pry/hooks.rb +9 -29
  84. data/lib/pry/indent.rb +6 -6
  85. data/lib/pry/input_completer.rb +242 -0
  86. data/lib/pry/input_lock.rb +132 -0
  87. data/lib/pry/inspector.rb +27 -0
  88. data/lib/pry/last_exception.rb +61 -0
  89. data/lib/pry/method.rb +82 -87
  90. data/lib/pry/{commands/edit/method_patcher.rb → method/patcher.rb} +41 -38
  91. data/lib/pry/module_candidate.rb +4 -14
  92. data/lib/pry/object_path.rb +82 -0
  93. data/lib/pry/output.rb +50 -0
  94. data/lib/pry/pager.rb +193 -48
  95. data/lib/pry/plugins.rb +1 -1
  96. data/lib/pry/prompt.rb +26 -0
  97. data/lib/pry/pry_class.rb +149 -230
  98. data/lib/pry/pry_instance.rb +302 -413
  99. data/lib/pry/rbx_path.rb +1 -1
  100. data/lib/pry/repl.rb +202 -0
  101. data/lib/pry/repl_file_loader.rb +20 -26
  102. data/lib/pry/rubygem.rb +13 -5
  103. data/lib/pry/terminal.rb +2 -1
  104. data/lib/pry/test/helper.rb +26 -41
  105. data/lib/pry/version.rb +1 -1
  106. data/lib/pry/wrapped_module.rb +45 -59
  107. metadata +62 -225
  108. data/.document +0 -2
  109. data/.gitignore +0 -16
  110. data/.travis.yml +0 -25
  111. data/.yardopts +0 -1
  112. data/CHANGELOG +0 -534
  113. data/CONTRIBUTORS +0 -55
  114. data/Gemfile +0 -12
  115. data/Rakefile +0 -140
  116. data/TODO +0 -117
  117. data/lib/pry/completion.rb +0 -321
  118. data/lib/pry/custom_completions.rb +0 -6
  119. data/lib/pry/rbx_method.rb +0 -13
  120. data/man/pry.1 +0 -195
  121. data/man/pry.1.html +0 -204
  122. data/man/pry.1.ronn +0 -141
  123. data/pry.gemspec +0 -29
  124. data/spec/Procfile +0 -3
  125. data/spec/cli_spec.rb +0 -78
  126. data/spec/code_object_spec.rb +0 -277
  127. data/spec/code_spec.rb +0 -219
  128. data/spec/command_helpers_spec.rb +0 -29
  129. data/spec/command_integration_spec.rb +0 -644
  130. data/spec/command_set_spec.rb +0 -627
  131. data/spec/command_spec.rb +0 -821
  132. data/spec/commands/amend_line_spec.rb +0 -247
  133. data/spec/commands/bang_spec.rb +0 -19
  134. data/spec/commands/cat_spec.rb +0 -164
  135. data/spec/commands/cd_spec.rb +0 -250
  136. data/spec/commands/disable_pry_spec.rb +0 -25
  137. data/spec/commands/edit_spec.rb +0 -727
  138. data/spec/commands/exit_all_spec.rb +0 -34
  139. data/spec/commands/exit_program_spec.rb +0 -19
  140. data/spec/commands/exit_spec.rb +0 -34
  141. data/spec/commands/find_method_spec.rb +0 -70
  142. data/spec/commands/gem_list_spec.rb +0 -26
  143. data/spec/commands/gist_spec.rb +0 -79
  144. data/spec/commands/help_spec.rb +0 -56
  145. data/spec/commands/hist_spec.rb +0 -181
  146. data/spec/commands/jump_to_spec.rb +0 -15
  147. data/spec/commands/ls_spec.rb +0 -181
  148. data/spec/commands/play_spec.rb +0 -140
  149. data/spec/commands/raise_up_spec.rb +0 -56
  150. data/spec/commands/save_file_spec.rb +0 -177
  151. data/spec/commands/show_doc_spec.rb +0 -510
  152. data/spec/commands/show_input_spec.rb +0 -17
  153. data/spec/commands/show_source_spec.rb +0 -782
  154. data/spec/commands/whereami_spec.rb +0 -203
  155. data/spec/completion_spec.rb +0 -241
  156. data/spec/control_d_handler_spec.rb +0 -58
  157. data/spec/documentation_helper_spec.rb +0 -73
  158. data/spec/editor_spec.rb +0 -79
  159. data/spec/exception_whitelist_spec.rb +0 -21
  160. data/spec/fixtures/candidate_helper1.rb +0 -11
  161. data/spec/fixtures/candidate_helper2.rb +0 -8
  162. data/spec/fixtures/example.erb +0 -5
  163. data/spec/fixtures/example_nesting.rb +0 -33
  164. data/spec/fixtures/show_source_doc_examples.rb +0 -15
  165. data/spec/fixtures/testrc +0 -2
  166. data/spec/fixtures/testrcbad +0 -2
  167. data/spec/fixtures/whereami_helper.rb +0 -6
  168. data/spec/helper.rb +0 -34
  169. data/spec/helpers/bacon.rb +0 -86
  170. data/spec/helpers/mock_pry.rb +0 -43
  171. data/spec/helpers/table_spec.rb +0 -105
  172. data/spec/history_array_spec.rb +0 -67
  173. data/spec/hooks_spec.rb +0 -522
  174. data/spec/indent_spec.rb +0 -301
  175. data/spec/input_stack_spec.rb +0 -90
  176. data/spec/method_spec.rb +0 -482
  177. data/spec/prompt_spec.rb +0 -60
  178. data/spec/pry_defaults_spec.rb +0 -419
  179. data/spec/pry_history_spec.rb +0 -99
  180. data/spec/pry_output_spec.rb +0 -95
  181. data/spec/pry_spec.rb +0 -515
  182. data/spec/run_command_spec.rb +0 -25
  183. data/spec/sticky_locals_spec.rb +0 -157
  184. data/spec/syntax_checking_spec.rb +0 -81
  185. data/spec/wrapped_module_spec.rb +0 -261
  186. data/wiki/Customizing-pry.md +0 -397
  187. data/wiki/Home.md +0 -4
@@ -1,60 +0,0 @@
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
@@ -1,419 +0,0 @@
1
- require 'helper'
2
-
3
- version = 1
4
-
5
- describe "test Pry defaults" do
6
- before do
7
- @str_output = StringIO.new
8
- end
9
-
10
- after do
11
- Pry.reset_defaults
12
- Pry.color = false
13
- end
14
-
15
- describe "input" do
16
- after do
17
- Pry.reset_defaults
18
- Pry.color = false
19
- end
20
-
21
- it 'should set the input default, and the default should be overridable' do
22
- Pry.input = InputTester.new("5")
23
-
24
- Pry.output = @str_output
25
- Pry.new.rep
26
- @str_output.string.should =~ /5/
27
-
28
- Pry.new(:input => InputTester.new("6")).rep
29
- @str_output.string.should =~ /6/
30
- end
31
-
32
- it 'should pass in the prompt if readline arity is 1' do
33
- Pry.prompt = proc { "A" }
34
-
35
- arity_one_input = Class.new do
36
- attr_accessor :prompt
37
- def readline(prompt)
38
- @prompt = prompt
39
- "exit-all"
40
- end
41
- end.new
42
-
43
- Pry.start(self, :input => arity_one_input, :output => StringIO.new)
44
- arity_one_input.prompt.should == Pry.prompt.call
45
- end
46
-
47
- it 'should not pass in the prompt if the arity is 0' do
48
- Pry.prompt = proc { "A" }
49
-
50
- arity_zero_input = Class.new do
51
- def readline
52
- "exit-all"
53
- end
54
- end.new
55
-
56
- lambda { Pry.start(self, :input => arity_zero_input, :output => StringIO.new) }.should.not.raise Exception
57
- end
58
-
59
- it 'should not pass in the prompt if the arity is -1' do
60
- Pry.prompt = proc { "A" }
61
-
62
- arity_multi_input = Class.new do
63
- attr_accessor :prompt
64
-
65
- def readline(*args)
66
- @prompt = args.first
67
- "exit-all"
68
- end
69
- end.new
70
-
71
- Pry.start(self, :input => arity_multi_input, :output => StringIO.new)
72
- arity_multi_input.prompt.should == nil
73
- end
74
-
75
- end
76
-
77
- it 'should set the output default, and the default should be overridable' do
78
- Pry.input = InputTester.new("5", "6", "7")
79
-
80
- Pry.output = @str_output
81
-
82
- Pry.new.rep
83
- @str_output.string.should =~ /5/
84
-
85
- Pry.new.rep
86
- @str_output.string.should =~ /5\n.*6/
87
-
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/
92
- end
93
-
94
- it "should set the print default, and the default should be overridable" do
95
- new_print = proc { |out, value| out.puts "=> LOL" }
96
- Pry.print = new_print
97
-
98
- Pry.new.print.should == Pry.print
99
- Pry.new(:input => InputTester.new("\"test\""), :output => @str_output).rep
100
- @str_output.string.should == "=> LOL\n"
101
-
102
- @str_output = StringIO.new
103
- Pry.new(:input => InputTester.new("\"test\""), :output => @str_output,
104
- :print => proc { |out, value| out.puts value.reverse }).rep
105
- @str_output.string.should == "tset\n"
106
-
107
- Pry.new.print.should == Pry.print
108
- @str_output = StringIO.new
109
- Pry.new(:input => InputTester.new("\"test\""), :output => @str_output).rep
110
- @str_output.string.should == "=> LOL\n"
111
- end
112
-
113
- describe "pry return values" do
114
- it 'should return nil' do
115
- Pry.start(self, :input => StringIO.new("exit-all"), :output => StringIO.new).should == nil
116
- end
117
-
118
- it 'should return the parameter given to exit-all' do
119
- Pry.start(self, :input => StringIO.new("exit-all 10"), :output => StringIO.new).should == 10
120
- end
121
-
122
- it 'should return the parameter (multi word string) given to exit-all' do
123
- Pry.start(self, :input => StringIO.new("exit-all \"john mair\""), :output => StringIO.new).should == "john mair"
124
- end
125
-
126
- it 'should return the parameter (function call) given to exit-all' do
127
- Pry.start(self, :input => StringIO.new("exit-all 'abc'.reverse"), :output => StringIO.new).should == 'cba'
128
- end
129
-
130
- it 'should return the parameter (self) given to exit-all' do
131
- Pry.start("carl", :input => StringIO.new("exit-all self"), :output => StringIO.new).should == "carl"
132
- end
133
- end
134
-
135
- describe "prompts" do
136
- before do
137
- @empty_input_buffer = ""
138
- @non_empty_input_buffer = "def hello"
139
- @context = Pry.binding_for(0)
140
- end
141
-
142
- it 'should set the prompt default, and the default should be overridable (single prompt)' do
143
- new_prompt = proc { "test prompt> " }
144
- Pry.prompt = new_prompt
145
-
146
- Pry.new.prompt.should == Pry.prompt
147
- Pry.new.select_prompt(@empty_input_buffer, @context).should == "test prompt> "
148
- Pry.new.select_prompt(@non_empty_input_buffer, @context).should == "test prompt> "
149
-
150
- new_prompt = proc { "A" }
151
- pry_tester = Pry.new(:prompt => new_prompt)
152
- pry_tester.prompt.should == new_prompt
153
- pry_tester.select_prompt(@empty_input_buffer, @context).should == "A"
154
- pry_tester.select_prompt(@non_empty_input_buffer, @context).should == "A"
155
-
156
- Pry.new.prompt.should == Pry.prompt
157
- Pry.new.select_prompt(@empty_input_buffer, @context).should == "test prompt> "
158
- Pry.new.select_prompt(@non_empty_input_buffer, @context).should == "test prompt> "
159
- end
160
-
161
- it 'should set the prompt default, and the default should be overridable (multi prompt)' do
162
- new_prompt = [proc { "test prompt> " }, proc { "test prompt* " }]
163
- Pry.prompt = new_prompt
164
-
165
- Pry.new.prompt.should == Pry.prompt
166
- Pry.new.select_prompt(@empty_input_buffer, @context).should == "test prompt> "
167
- Pry.new.select_prompt(@non_empty_input_buffer, @context).should == "test prompt* "
168
-
169
- new_prompt = [proc { "A" }, proc { "B" }]
170
- pry_tester = Pry.new(:prompt => new_prompt)
171
- pry_tester.prompt.should == new_prompt
172
- pry_tester.select_prompt(@empty_input_buffer, @context).should == "A"
173
- pry_tester.select_prompt(@non_empty_input_buffer, @context).should == "B"
174
-
175
- Pry.new.prompt.should == Pry.prompt
176
- Pry.new.select_prompt(@empty_input_buffer, @context).should == "test prompt> "
177
- Pry.new.select_prompt(@non_empty_input_buffer, @context).should == "test prompt* "
178
- end
179
-
180
- describe 'storing and restoring the prompt' do
181
- before do
182
- make = lambda do |name,i|
183
- prompt = [ proc { "#{i}>" } , proc { "#{i+1}>" } ]
184
- (class << prompt; self; end).send(:define_method, :inspect) { "<Prompt-#{name}>" }
185
- prompt
186
- end
187
- @a , @b , @c = make[:a,0] , make[:b,1] , make[:c,2]
188
- @pry = Pry.new :prompt => @a
189
- end
190
- it 'should have a prompt stack' do
191
- @pry.push_prompt @b
192
- @pry.push_prompt @c
193
- @pry.prompt.should == @c
194
- @pry.pop_prompt
195
- @pry.prompt.should == @b
196
- @pry.pop_prompt
197
- @pry.prompt.should == @a
198
- end
199
-
200
- it 'should restore overridden prompts when returning from file-mode' do
201
- pry = Pry.new :input => InputTester.new('shell-mode', 'shell-mode'),
202
- :prompt => [ proc { 'P>' } ] * 2
203
- pry.select_prompt(@empty_input_buffer, @context).should == "P>"
204
- pry.re
205
- pry.select_prompt(@empty_input_buffer, @context).should =~ /\Apry .* \$ \z/
206
- pry.re
207
- pry.select_prompt(@empty_input_buffer, @context).should == "P>"
208
- end
209
-
210
- it '#pop_prompt should return the popped prompt' do
211
- @pry.push_prompt @b
212
- @pry.push_prompt @c
213
- @pry.pop_prompt.should == @c
214
- @pry.pop_prompt.should == @b
215
- end
216
-
217
- it 'should not pop the last prompt' do
218
- @pry.push_prompt @b
219
- @pry.pop_prompt.should == @b
220
- @pry.pop_prompt.should == @a
221
- @pry.pop_prompt.should == @a
222
- @pry.prompt.should == @a
223
- end
224
-
225
- describe '#prompt= should replace the current prompt with the new prompt' do
226
- it 'when only one prompt on the stack' do
227
- @pry.prompt = @b
228
- @pry.prompt.should == @b
229
- @pry.pop_prompt.should == @b
230
- @pry.pop_prompt.should == @b
231
- end
232
- it 'when several prompts on the stack' do
233
- @pry.push_prompt @b
234
- @pry.prompt = @c
235
- @pry.pop_prompt.should == @c
236
- @pry.pop_prompt.should == @a
237
- end
238
- end
239
- end
240
- end
241
-
242
- describe "view_clip used for displaying an object in a truncated format" do
243
-
244
- VC_MAX_LENGTH = 60
245
-
246
- describe "given an object with an #inspect string" do
247
- it "returns the #<> format of the object (never use inspect)" do
248
- o = Object.new
249
- def o.inspect; "a" * VC_MAX_LENGTH; end
250
-
251
- Pry.view_clip(o, VC_MAX_LENGTH).should =~ /#<Object/
252
- end
253
- end
254
-
255
- describe "given the 'main' object" do
256
- it "returns the #to_s of main (special case)" do
257
- o = TOPLEVEL_BINDING.eval('self')
258
- Pry.view_clip(o, VC_MAX_LENGTH).should == o.to_s
259
- end
260
- end
261
-
262
- describe "given the a Numeric, String or Symbol object" do
263
- [1, 2.0, -5, "hello", :test].each do |o|
264
- it "returns the #inspect of the special-cased immediate object: #{o}" do
265
- Pry.view_clip(o, VC_MAX_LENGTH).should == o.inspect
266
- end
267
- end
268
-
269
- # only testing with String here :)
270
- it "returns #<> format of the special-cased immediate object if #inspect is longer than maximum" do
271
- o = "o" * (VC_MAX_LENGTH + 1)
272
- Pry.view_clip(o, VC_MAX_LENGTH).should =~ /#<String/
273
- end
274
- end
275
-
276
- describe "given an object with an #inspect string as long as the maximum specified" do
277
- it "returns the #<> format of the object (never use inspect)" do
278
- o = Object.new
279
- def o.inspect; "a" * VC_MAX_LENGTH; end
280
-
281
- Pry.view_clip(o, VC_MAX_LENGTH).should =~ /#<Object/
282
- end
283
- end
284
-
285
- describe "given a regular object with an #inspect string longer than the maximum specified" do
286
-
287
- describe "when the object is a regular one" do
288
- it "returns a string of the #<class name:object idish> format" do
289
- o = Object.new
290
- def o.inspect; "a" * (VC_MAX_LENGTH + 1); end
291
-
292
- Pry.view_clip(o, VC_MAX_LENGTH).should =~ /#<Object/
293
- end
294
- end
295
-
296
- describe "when the object is a Class or a Module" do
297
- describe "without a name (usually a c = Class.new)" do
298
- it "returns a string of the #<class name:object idish> format" do
299
- c, m = Class.new, Module.new
300
-
301
- Pry.view_clip(c, VC_MAX_LENGTH).should =~ /#<Class/
302
- Pry.view_clip(m, VC_MAX_LENGTH).should =~ /#<Module/
303
- end
304
- end
305
-
306
- describe "with a #name longer than the maximum specified" do
307
- it "returns a string of the #<class name:object idish> format" do
308
- c, m = Class.new, Module.new
309
-
310
-
311
- def c.name; "a" * (VC_MAX_LENGTH + 1); end
312
- def m.name; "a" * (VC_MAX_LENGTH + 1); end
313
-
314
- Pry.view_clip(c, VC_MAX_LENGTH).should =~ /#<Class/
315
- Pry.view_clip(m, VC_MAX_LENGTH).should =~ /#<Module/
316
- end
317
- end
318
-
319
- describe "with a #name shorter than or equal to the maximum specified" do
320
- it "returns a string of the #<class name:object idish> format" do
321
- c, m = Class.new, Module.new
322
-
323
- def c.name; "a" * VC_MAX_LENGTH; end
324
- def m.name; "a" * VC_MAX_LENGTH; end
325
-
326
- Pry.view_clip(c, VC_MAX_LENGTH).should == c.name
327
- Pry.view_clip(m, VC_MAX_LENGTH).should == m.name
328
- end
329
- end
330
-
331
- end
332
-
333
- end
334
-
335
- end
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
- pry_eval(Pry.toplevel_binding, "ls -l").should.not =~ /version/
359
- end
360
-
361
- it 'should have self the same as TOPLEVEL_BINDING' do
362
- Pry.toplevel_binding.eval('self').should.equal? TOPLEVEL_BINDING.eval('self')
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
- TOPLEVEL_BINDING.eval '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
-
375
- it 'should set the hooks default, and the default should be overridable' do
376
- Pry.input = InputTester.new("exit-all")
377
- Pry.hooks = Pry::Hooks.new.
378
- add_hook(:before_session, :my_name) { |out,_,_| out.puts "HELLO" }.
379
- add_hook(:after_session, :my_name) { |out,_,_| out.puts "BYE" }
380
-
381
- Pry.new(:output => @str_output).repl
382
- @str_output.string.should =~ /HELLO/
383
- @str_output.string.should =~ /BYE/
384
-
385
- Pry.input.rewind
386
-
387
- @str_output = StringIO.new
388
- Pry.new(:output => @str_output,
389
- :hooks => Pry::Hooks.new.
390
- add_hook( :before_session, :my_name) { |out,_,_| out.puts "MORNING" }.
391
- add_hook(:after_session, :my_name) { |out,_,_| out.puts "EVENING" }
392
- ).repl
393
-
394
- @str_output.string.should =~ /MORNING/
395
- @str_output.string.should =~ /EVENING/
396
-
397
- # try below with just defining one hook
398
- Pry.input.rewind
399
- @str_output = StringIO.new
400
- Pry.new(:output => @str_output,
401
- :hooks => Pry::Hooks.new.
402
- add_hook(:before_session, :my_name) { |out,_,_| out.puts "OPEN" }
403
- ).repl
404
-
405
- @str_output.string.should =~ /OPEN/
406
-
407
- Pry.input.rewind
408
- @str_output = StringIO.new
409
- Pry.new(:output => @str_output,
410
- :hooks => Pry::Hooks.new.
411
- add_hook(:after_session, :my_name) { |out,_,_| out.puts "CLOSE" }
412
- ).repl
413
-
414
- @str_output.string.should =~ /CLOSE/
415
-
416
- Pry.reset_defaults
417
- Pry.color = false
418
- end
419
- end