pry 0.10.pre.1-java → 0.10.0.pre2-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.
Files changed (214) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +702 -0
  3. data/LICENSE +2 -2
  4. data/{README.markdown → README.md} +41 -35
  5. data/lib/pry.rb +82 -139
  6. data/lib/pry/cli.rb +77 -30
  7. data/lib/pry/code.rb +126 -182
  8. data/lib/pry/code/code_file.rb +103 -0
  9. data/lib/pry/code/code_range.rb +71 -0
  10. data/lib/pry/code/loc.rb +92 -0
  11. data/lib/pry/code_object.rb +172 -0
  12. data/lib/pry/color_printer.rb +55 -0
  13. data/lib/pry/command.rb +184 -28
  14. data/lib/pry/command_set.rb +113 -59
  15. data/lib/pry/commands.rb +4 -27
  16. data/lib/pry/commands/amend_line.rb +99 -0
  17. data/lib/pry/commands/bang.rb +20 -0
  18. data/lib/pry/commands/bang_pry.rb +17 -0
  19. data/lib/pry/commands/cat.rb +62 -0
  20. data/lib/pry/commands/cat/abstract_formatter.rb +27 -0
  21. data/lib/pry/commands/cat/exception_formatter.rb +77 -0
  22. data/lib/pry/commands/cat/file_formatter.rb +67 -0
  23. data/lib/pry/commands/cat/input_expression_formatter.rb +43 -0
  24. data/lib/pry/commands/cd.rb +41 -0
  25. data/lib/pry/commands/change_inspector.rb +27 -0
  26. data/lib/pry/commands/change_prompt.rb +26 -0
  27. data/lib/pry/commands/code_collector.rb +165 -0
  28. data/lib/pry/commands/disable_pry.rb +27 -0
  29. data/lib/pry/commands/disabled_commands.rb +2 -0
  30. data/lib/pry/commands/easter_eggs.rb +112 -0
  31. data/lib/pry/commands/edit.rb +195 -0
  32. data/lib/pry/commands/edit/exception_patcher.rb +25 -0
  33. data/lib/pry/commands/edit/file_and_line_locator.rb +36 -0
  34. data/lib/pry/commands/exit.rb +42 -0
  35. data/lib/pry/commands/exit_all.rb +29 -0
  36. data/lib/pry/commands/exit_program.rb +23 -0
  37. data/lib/pry/commands/find_method.rb +193 -0
  38. data/lib/pry/commands/fix_indent.rb +19 -0
  39. data/lib/pry/commands/gem_cd.rb +26 -0
  40. data/lib/pry/commands/gem_install.rb +32 -0
  41. data/lib/pry/commands/gem_list.rb +33 -0
  42. data/lib/pry/commands/gem_open.rb +29 -0
  43. data/lib/pry/commands/gist.rb +101 -0
  44. data/lib/pry/commands/help.rb +164 -0
  45. data/lib/pry/commands/hist.rb +180 -0
  46. data/lib/pry/commands/import_set.rb +22 -0
  47. data/lib/pry/commands/install_command.rb +53 -0
  48. data/lib/pry/commands/jump_to.rb +29 -0
  49. data/lib/pry/commands/list_inspectors.rb +35 -0
  50. data/lib/pry/commands/list_prompts.rb +35 -0
  51. data/lib/pry/commands/ls.rb +114 -0
  52. data/lib/pry/commands/ls/constants.rb +47 -0
  53. data/lib/pry/commands/ls/formatter.rb +49 -0
  54. data/lib/pry/commands/ls/globals.rb +48 -0
  55. data/lib/pry/commands/ls/grep.rb +21 -0
  56. data/lib/pry/commands/ls/instance_vars.rb +39 -0
  57. data/lib/pry/commands/ls/interrogatable.rb +18 -0
  58. data/lib/pry/commands/ls/jruby_hacks.rb +49 -0
  59. data/lib/pry/commands/ls/local_names.rb +35 -0
  60. data/lib/pry/commands/ls/local_vars.rb +39 -0
  61. data/lib/pry/commands/ls/ls_entity.rb +70 -0
  62. data/lib/pry/commands/ls/methods.rb +57 -0
  63. data/lib/pry/commands/ls/methods_helper.rb +46 -0
  64. data/lib/pry/commands/ls/self_methods.rb +32 -0
  65. data/lib/pry/commands/nesting.rb +25 -0
  66. data/lib/pry/commands/play.rb +103 -0
  67. data/lib/pry/commands/pry_backtrace.rb +25 -0
  68. data/lib/pry/commands/pry_version.rb +17 -0
  69. data/lib/pry/commands/raise_up.rb +32 -0
  70. data/lib/pry/commands/reload_code.rb +62 -0
  71. data/lib/pry/commands/reset.rb +18 -0
  72. data/lib/pry/commands/ri.rb +60 -0
  73. data/lib/pry/commands/save_file.rb +61 -0
  74. data/lib/pry/commands/shell_command.rb +48 -0
  75. data/lib/pry/commands/shell_mode.rb +25 -0
  76. data/lib/pry/commands/show_doc.rb +83 -0
  77. data/lib/pry/commands/show_info.rb +195 -0
  78. data/lib/pry/commands/show_input.rb +17 -0
  79. data/lib/pry/commands/show_source.rb +50 -0
  80. data/lib/pry/commands/simple_prompt.rb +22 -0
  81. data/lib/pry/commands/stat.rb +40 -0
  82. data/lib/pry/commands/switch_to.rb +23 -0
  83. data/lib/pry/commands/toggle_color.rb +24 -0
  84. data/lib/pry/commands/watch_expression.rb +105 -0
  85. data/lib/pry/commands/watch_expression/expression.rb +38 -0
  86. data/lib/pry/commands/whereami.rb +190 -0
  87. data/lib/pry/commands/wtf.rb +57 -0
  88. data/lib/pry/config.rb +20 -229
  89. data/lib/pry/config/behavior.rb +139 -0
  90. data/lib/pry/config/convenience.rb +26 -0
  91. data/lib/pry/config/default.rb +165 -0
  92. data/lib/pry/core_extensions.rb +59 -38
  93. data/lib/pry/editor.rb +133 -0
  94. data/lib/pry/exceptions.rb +77 -0
  95. data/lib/pry/helpers.rb +1 -0
  96. data/lib/pry/helpers/base_helpers.rb +40 -154
  97. data/lib/pry/helpers/command_helpers.rb +19 -130
  98. data/lib/pry/helpers/documentation_helpers.rb +21 -11
  99. data/lib/pry/helpers/table.rb +109 -0
  100. data/lib/pry/helpers/text.rb +8 -9
  101. data/lib/pry/history.rb +61 -45
  102. data/lib/pry/history_array.rb +11 -1
  103. data/lib/pry/hooks.rb +10 -32
  104. data/lib/pry/indent.rb +110 -38
  105. data/lib/pry/input_completer.rb +242 -0
  106. data/lib/pry/input_lock.rb +132 -0
  107. data/lib/pry/inspector.rb +27 -0
  108. data/lib/pry/last_exception.rb +61 -0
  109. data/lib/pry/method.rb +199 -200
  110. data/lib/pry/method/disowned.rb +53 -0
  111. data/lib/pry/method/patcher.rb +125 -0
  112. data/lib/pry/method/weird_method_locator.rb +186 -0
  113. data/lib/pry/module_candidate.rb +39 -33
  114. data/lib/pry/object_path.rb +82 -0
  115. data/lib/pry/output.rb +50 -0
  116. data/lib/pry/pager.rb +234 -0
  117. data/lib/pry/plugins.rb +4 -3
  118. data/lib/pry/prompt.rb +26 -0
  119. data/lib/pry/pry_class.rb +199 -227
  120. data/lib/pry/pry_instance.rb +344 -403
  121. data/lib/pry/rbx_path.rb +1 -1
  122. data/lib/pry/repl.rb +202 -0
  123. data/lib/pry/repl_file_loader.rb +20 -26
  124. data/lib/pry/rubygem.rb +82 -0
  125. data/lib/pry/terminal.rb +79 -0
  126. data/lib/pry/test/helper.rb +170 -0
  127. data/lib/pry/version.rb +1 -1
  128. data/lib/pry/wrapped_module.rb +133 -48
  129. metadata +132 -197
  130. data/.document +0 -2
  131. data/.gemtest +0 -0
  132. data/.gitignore +0 -16
  133. data/.travis.yml +0 -17
  134. data/.yardopts +0 -1
  135. data/CHANGELOG +0 -387
  136. data/CONTRIBUTORS +0 -36
  137. data/Gemfile +0 -2
  138. data/Rakefile +0 -137
  139. data/TODO +0 -117
  140. data/examples/example_basic.rb +0 -15
  141. data/examples/example_command_override.rb +0 -32
  142. data/examples/example_commands.rb +0 -36
  143. data/examples/example_hooks.rb +0 -9
  144. data/examples/example_image_edit.rb +0 -67
  145. data/examples/example_input.rb +0 -7
  146. data/examples/example_input2.rb +0 -29
  147. data/examples/example_output.rb +0 -11
  148. data/examples/example_print.rb +0 -6
  149. data/examples/example_prompt.rb +0 -9
  150. data/examples/helper.rb +0 -6
  151. data/lib/pry/completion.rb +0 -221
  152. data/lib/pry/custom_completions.rb +0 -6
  153. data/lib/pry/default_commands/cd.rb +0 -81
  154. data/lib/pry/default_commands/commands.rb +0 -62
  155. data/lib/pry/default_commands/context.rb +0 -98
  156. data/lib/pry/default_commands/easter_eggs.rb +0 -95
  157. data/lib/pry/default_commands/editing.rb +0 -420
  158. data/lib/pry/default_commands/find_method.rb +0 -169
  159. data/lib/pry/default_commands/gems.rb +0 -84
  160. data/lib/pry/default_commands/gist.rb +0 -187
  161. data/lib/pry/default_commands/help.rb +0 -127
  162. data/lib/pry/default_commands/hist.rb +0 -120
  163. data/lib/pry/default_commands/input_and_output.rb +0 -306
  164. data/lib/pry/default_commands/introspection.rb +0 -410
  165. data/lib/pry/default_commands/ls.rb +0 -272
  166. data/lib/pry/default_commands/misc.rb +0 -38
  167. data/lib/pry/default_commands/navigating_pry.rb +0 -110
  168. data/lib/pry/default_commands/whereami.rb +0 -92
  169. data/lib/pry/extended_commands/experimental.rb +0 -7
  170. data/lib/pry/rbx_method.rb +0 -13
  171. data/man/pry.1 +0 -195
  172. data/man/pry.1.html +0 -204
  173. data/man/pry.1.ronn +0 -141
  174. data/pry.gemspec +0 -46
  175. data/test/candidate_helper1.rb +0 -11
  176. data/test/candidate_helper2.rb +0 -8
  177. data/test/helper.rb +0 -223
  178. data/test/test_cli.rb +0 -78
  179. data/test/test_code.rb +0 -201
  180. data/test/test_command.rb +0 -712
  181. data/test/test_command_helpers.rb +0 -9
  182. data/test/test_command_integration.rb +0 -668
  183. data/test/test_command_set.rb +0 -610
  184. data/test/test_completion.rb +0 -62
  185. data/test/test_control_d_handler.rb +0 -45
  186. data/test/test_default_commands/example.erb +0 -5
  187. data/test/test_default_commands/test_cd.rb +0 -318
  188. data/test/test_default_commands/test_context.rb +0 -280
  189. data/test/test_default_commands/test_documentation.rb +0 -314
  190. data/test/test_default_commands/test_find_method.rb +0 -50
  191. data/test/test_default_commands/test_gems.rb +0 -18
  192. data/test/test_default_commands/test_help.rb +0 -57
  193. data/test/test_default_commands/test_input.rb +0 -428
  194. data/test/test_default_commands/test_introspection.rb +0 -511
  195. data/test/test_default_commands/test_ls.rb +0 -151
  196. data/test/test_default_commands/test_shell.rb +0 -343
  197. data/test/test_default_commands/test_show_source.rb +0 -432
  198. data/test/test_exception_whitelist.rb +0 -21
  199. data/test/test_history_array.rb +0 -65
  200. data/test/test_hooks.rb +0 -521
  201. data/test/test_indent.rb +0 -277
  202. data/test/test_input_stack.rb +0 -86
  203. data/test/test_method.rb +0 -401
  204. data/test/test_pry.rb +0 -463
  205. data/test/test_pry_defaults.rb +0 -419
  206. data/test/test_pry_history.rb +0 -84
  207. data/test/test_pry_output.rb +0 -41
  208. data/test/test_sticky_locals.rb +0 -155
  209. data/test/test_syntax_checking.rb +0 -65
  210. data/test/test_wrapped_module.rb +0 -174
  211. data/test/testrc +0 -2
  212. data/test/testrcbad +0 -2
  213. data/wiki/Customizing-pry.md +0 -397
  214. data/wiki/Home.md +0 -4
@@ -1,11 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
-
3
- # Create a StringIO to contain the output data
4
- str_output = StringIO.new
5
-
6
- # Start a Pry session on the Fixnum 5 using str_output to store the
7
- # output (not writing to $stdout)
8
- Pry.start(5, :output => str_output)
9
-
10
- # Display all the output accumulated during the session
11
- puts str_output.string
@@ -1,6 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
-
3
- my_print = proc { |out, value| out.puts "Output is: #{value.inspect}" }
4
-
5
- # Start a Pry session using the print object defined in my_print
6
- Pry.start(TOPLEVEL_BINDING, :print => my_print)
@@ -1,9 +0,0 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
-
3
- # Remember, first prompt in array is the main prompt, second is the wait
4
- # prompt (used for multiline input when more input is required)
5
- my_prompt = [ proc { |obj, *| "inside #{obj}> " },
6
- proc { |obj, *| "inside #{obj}* "} ]
7
-
8
- # Start a Pry session using the prompt defined in my_prompt
9
- Pry.start(TOPLEVEL_BINDING, :prompt => my_prompt)
@@ -1,6 +0,0 @@
1
- require 'rubygems'
2
- unless Object.const_defined? 'Pry'
3
- $:.unshift File.expand_path '../../lib', __FILE__
4
- require 'pry'
5
- end
6
-
@@ -1,221 +0,0 @@
1
- # taken from irb
2
-
3
- require "readline"
4
-
5
- class Pry
6
-
7
- # Implements tab completion for Readline in Pry
8
- module InputCompleter
9
-
10
- if Readline.respond_to?("basic_word_break_characters=")
11
- Readline.basic_word_break_characters = " \t\n\"\\'`><=;|&{("
12
- end
13
-
14
- Readline.completion_append_character = nil
15
-
16
- ReservedWords = [
17
- "BEGIN", "END",
18
- "alias", "and",
19
- "begin", "break",
20
- "case", "class",
21
- "def", "defined", "do",
22
- "else", "elsif", "end", "ensure",
23
- "false", "for",
24
- "if", "in",
25
- "module",
26
- "next", "nil", "not",
27
- "or",
28
- "redo", "rescue", "retry", "return",
29
- "self", "super",
30
- "then", "true",
31
- "undef", "unless", "until",
32
- "when", "while",
33
- "yield" ]
34
-
35
- Operators = [
36
- "%", "&", "*", "**", "+", "-", "/",
37
- "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", ">>",
38
- "[]", "[]=", "^", "!", "!=", "!~"
39
- ]
40
-
41
- # Return a new completion proc for use by Readline.
42
- # @param [Binding] target The current binding context.
43
- # @param [Array<String>] commands The array of Pry commands.
44
- def self.build_completion_proc(target, commands=[""])
45
- proc do |input|
46
- begin
47
- bind = target
48
-
49
- case input
50
- when /^(\/[^\/]*\/)\.([^.]*)$/
51
- # Regexp
52
- receiver = $1
53
- message = Regexp.quote($2)
54
-
55
- candidates = Regexp.instance_methods.collect{|m| m.to_s}
56
- select_message(receiver, message, candidates)
57
-
58
- when /^([^\]]*\])\.([^.]*)$/
59
- # Array
60
- receiver = $1
61
- message = Regexp.quote($2)
62
-
63
- candidates = Array.instance_methods.collect{|m| m.to_s}
64
- select_message(receiver, message, candidates)
65
-
66
- when /^([^\}]*\})\.([^.]*)$/
67
- # Proc or Hash
68
- receiver = $1
69
- message = Regexp.quote($2)
70
-
71
- candidates = Proc.instance_methods.collect{|m| m.to_s}
72
- candidates |= Hash.instance_methods.collect{|m| m.to_s}
73
- select_message(receiver, message, candidates)
74
-
75
- when /^(:[^:.]*)$/
76
- # Symbol
77
- if Symbol.respond_to?(:all_symbols)
78
- sym = Regexp.quote($1)
79
- candidates = Symbol.all_symbols.collect{|s| ":" + s.id2name}
80
-
81
- candidates.grep(/^#{sym}/)
82
- else
83
- []
84
- end
85
-
86
- when /^::([A-Z][^:\.\(]*)$/
87
- # Absolute Constant or class methods
88
- receiver = $1
89
- candidates = Object.constants.collect{|m| m.to_s}
90
- candidates.grep(/^#{receiver}/).collect{|e| "::" + e}
91
-
92
- when /^([A-Z].*)::([^:.]*)$/
93
- # Constant or class methods
94
- receiver = $1
95
- message = Regexp.quote($2)
96
- begin
97
- candidates = eval("#{receiver}.constants.collect{|m| m.to_s}", bind)
98
- candidates |= eval("#{receiver}.methods.collect{|m| m.to_s}", bind)
99
- rescue RescuableException
100
- candidates = []
101
- end
102
- candidates.grep(/^#{message}/).collect{|e| receiver + "::" + e}
103
-
104
- when /^(:[^:.]+)\.([^.]*)$/
105
- # Symbol
106
- receiver = $1
107
- message = Regexp.quote($2)
108
-
109
- candidates = Symbol.instance_methods.collect{|m| m.to_s}
110
- select_message(receiver, message, candidates)
111
-
112
- when /^(-?(0[dbo])?[0-9_]+(\.[0-9_]+)?([eE]-?[0-9]+)?)\.([^.]*)$/
113
- # Numeric
114
- receiver = $1
115
- message = Regexp.quote($5)
116
-
117
- begin
118
- candidates = eval(receiver, bind).methods.collect{|m| m.to_s}
119
- rescue RescuableException
120
- candidates = []
121
- end
122
- select_message(receiver, message, candidates)
123
-
124
- when /^(-?0x[0-9a-fA-F_]+)\.([^.]*)$/
125
- # Numeric(0xFFFF)
126
- receiver = $1
127
- message = Regexp.quote($2)
128
-
129
- begin
130
- candidates = eval(receiver, bind).methods.collect{|m| m.to_s}
131
- rescue RescuableException
132
- candidates = []
133
- end
134
- select_message(receiver, message, candidates)
135
-
136
- when /^(\$[^.]*)$/
137
- regmessage = Regexp.new(Regexp.quote($1))
138
- candidates = global_variables.collect{|m| m.to_s}.grep(regmessage)
139
-
140
- when /^([^."].*)\.([^.]*)$/
141
- # variable
142
- receiver = $1
143
- message = Regexp.quote($2)
144
-
145
- gv = eval("global_variables", bind).collect{|m| m.to_s}
146
- lv = eval("local_variables", bind).collect{|m| m.to_s}
147
- cv = eval("self.class.constants", bind).collect{|m| m.to_s}
148
-
149
- if (gv | lv | cv).include?(receiver) or /^[A-Z]/ =~ receiver && /\./ !~ receiver
150
- # foo.func and foo is local var. OR
151
- # Foo::Bar.func
152
- begin
153
- candidates = eval("#{receiver}.methods", bind).collect{|m| m.to_s}
154
- rescue RescuableException
155
- candidates = []
156
- end
157
- else
158
- # func1.func2
159
- candidates = []
160
- ObjectSpace.each_object(Module){|m|
161
- begin
162
- name = m.name.to_s
163
- rescue RescuableException
164
- name = ""
165
- end
166
- next if name != "IRB::Context" and
167
- /^(IRB|SLex|RubyLex|RubyToken)/ =~ name
168
-
169
- # jruby doesn't always provide #instance_methods() on each
170
- # object.
171
- if m.respond_to?(:instance_methods)
172
- candidates.concat m.instance_methods(false).collect{|x| x.to_s}
173
- end
174
- }
175
- candidates.sort!
176
- candidates.uniq!
177
- end
178
- select_message(receiver, message, candidates)
179
-
180
- when /^\.([^.]*)$/
181
- # unknown(maybe String)
182
-
183
- receiver = ""
184
- message = Regexp.quote($1)
185
-
186
- candidates = String.instance_methods(true).collect{|m| m.to_s}
187
- select_message(receiver, message, candidates)
188
-
189
- else
190
- candidates = eval(
191
- "methods | private_methods | local_variables | " \
192
- "self.class.constants | instance_variables",
193
- bind
194
- ).collect{|m| m.to_s}
195
-
196
- if eval("respond_to?(:class_variables)", bind)
197
- candidates += eval("class_variables", bind).collect { |m| m.to_s }
198
- end
199
-
200
- (candidates|ReservedWords|commands).grep(/^#{Regexp.quote(input)}/)
201
- end
202
- rescue RescuableException
203
- []
204
- end
205
- end
206
- end
207
-
208
- def self.select_message(receiver, message, candidates)
209
- candidates.grep(/^#{message}/).collect do |e|
210
- case e
211
- when /^[a-zA-Z_]/
212
- receiver + "." + e
213
- when /^[0-9]/
214
- when *Operators
215
- #receiver + " " + e
216
- end
217
- end
218
- end
219
- end
220
- end
221
-
@@ -1,6 +0,0 @@
1
- class Pry
2
-
3
- # This proc will be instance_eval's against the active Pry instance
4
- DEFAULT_CUSTOM_COMPLETIONS = proc { commands.commands.keys }
5
- FILE_COMPLETIONS = proc { commands.commands.keys + Dir.entries('.') }
6
- end
@@ -1,81 +0,0 @@
1
- class Pry
2
- module DefaultCommands
3
- Cd = Pry::CommandSet.new do
4
- create_command "cd" do
5
- group "Context"
6
- description "Move into a new context (object or scope)."
7
-
8
- banner <<-BANNER
9
- Usage: cd [OPTIONS] [--help]
10
-
11
- Move into new context (object or scope). As in unix shells use
12
- `cd ..` to go back, `cd /` to return to Pry top-level and `cd -`
13
- to toggle between last two scopes).
14
- Complex syntax (e.g `cd ../@x/y`) also supported.
15
-
16
- e.g: `cd @x`
17
- e.g: `cd ..`
18
- e.g: `cd /`
19
- e.g: `cd -`
20
-
21
- https://github.com/pry/pry/wiki/State-navigation#wiki-Changing_scope
22
- BANNER
23
-
24
- def process
25
- # Extract command arguments. Delete blank arguments like " ", but
26
- # don't delete empty strings like "".
27
- path = arg_string.split(/\//).delete_if { |a| a =~ /\A\s+\z/ }
28
- stack = _pry_.binding_stack.dup
29
- old_stack = state.old_stack || []
30
-
31
- # Special case when we only get a single "/", return to root.
32
- if path.empty?
33
- state.old_stack = stack.dup unless old_stack.empty?
34
- stack = [stack.first]
35
- end
36
-
37
- path.each_with_index do |context, i|
38
- begin
39
- case context.chomp
40
- when ""
41
- state.old_stack = stack.dup
42
- stack = [stack.first]
43
- when "::"
44
- state.old_stack = stack.dup
45
- stack.push(TOPLEVEL_BINDING)
46
- when "."
47
- next
48
- when ".."
49
- unless stack.size == 1
50
- # Don't rewrite old_stack if we're in complex expression
51
- # (e.g.: `cd 1/2/3/../4).
52
- state.old_stack = stack.dup if path.first == ".."
53
- stack.pop
54
- end
55
- when "-"
56
- unless old_stack.empty?
57
- # Interchange current stack and old stack with each other.
58
- stack, state.old_stack = state.old_stack, stack
59
- end
60
- else
61
- state.old_stack = stack.dup if i == 0
62
- stack.push(Pry.binding_for(stack.last.eval(context)))
63
- end
64
-
65
- rescue RescuableException => e
66
- # Restore old stack to its initial values.
67
- state.old_stack = old_stack
68
-
69
- output.puts "Bad object path: #{arg_string.chomp}. Failed trying to resolve: #{context}"
70
- output.puts e.inspect
71
- return
72
- end
73
- end
74
-
75
- _pry_.binding_stack = stack
76
- end
77
-
78
- end
79
- end
80
- end
81
- end
@@ -1,62 +0,0 @@
1
- class Pry
2
- module DefaultCommands
3
- Commands = Pry::CommandSet.new do
4
- create_command "import-set", "Import a command set" do
5
- group "Commands"
6
- def process(command_set_name)
7
- raise CommandError, "Provide a command set name" if command_set.nil?
8
-
9
- set = target.eval(arg_string)
10
- _pry_.commands.import set
11
- end
12
- end
13
-
14
- create_command "install-command", "Install a disabled command." do |name|
15
- group 'Commands'
16
-
17
- banner <<-BANNER
18
- Usage: install-command COMMAND
19
-
20
- Installs the gems necessary to run the given COMMAND. You will generally not
21
- need to run this unless told to by an error message.
22
- BANNER
23
-
24
- def process(name)
25
- require 'rubygems/dependency_installer' unless defined? Gem::DependencyInstaller
26
- command = find_command(name)
27
-
28
- if command_dependencies_met?(command.options)
29
- output.puts "Dependencies for #{command.name} are met. Nothing to do."
30
- return
31
- end
32
-
33
- output.puts "Attempting to install `#{name}` command..."
34
- gems_to_install = Array(command.options[:requires_gem])
35
-
36
- gems_to_install.each do |g|
37
- next if gem_installed?(g)
38
- output.puts "Installing `#{g}` gem..."
39
-
40
- begin
41
- Gem::DependencyInstaller.new.install(g)
42
- rescue Gem::GemNotFoundException
43
- raise CommandError, "Required Gem: `#{g}` not found. Aborting command installation."
44
- end
45
- end
46
-
47
- Gem.refresh
48
- gems_to_install.each do |g|
49
- begin
50
- require g
51
- rescue LoadError
52
- raise CommandError, "Required Gem: `#{g}` installed but not found?!. Aborting command installation."
53
- end
54
- end
55
-
56
- output.puts "Installation of `#{name}` successful! Type `help #{name}` for information"
57
- end
58
- end
59
- end
60
- end
61
- end
62
-
@@ -1,98 +0,0 @@
1
- require "pry/default_commands/ls"
2
- require "pry/default_commands/cd"
3
- require "pry/default_commands/find_method"
4
- require "pry/default_commands/whereami"
5
-
6
- class Pry
7
- module DefaultCommands
8
-
9
- Context = Pry::CommandSet.new do
10
- import Ls
11
- import Cd
12
- import FindMethod
13
- import Whereami
14
-
15
- create_command "pry-backtrace", "Show the backtrace for the Pry session." do
16
- banner <<-BANNER
17
- Usage: pry-backtrace [OPTIONS] [--help]
18
-
19
- Show the backtrace for the position in the code where Pry was started. This can be used to
20
- infer the behavior of the program immediately before it entered Pry, just like the backtrace
21
- property of an exception.
22
-
23
- (NOTE: if you are looking for the backtrace of the most recent exception raised,
24
- just type: `_ex_.backtrace` instead, see https://github.com/pry/pry/wiki/Special-Locals)
25
-
26
- e.g: pry-backtrace
27
- BANNER
28
-
29
- def process
30
- output.puts "\n#{text.bold('Backtrace:')}\n--\n"
31
- stagger_output _pry_.backtrace.join("\n")
32
- end
33
- end
34
-
35
- command "reset", "Reset the REPL to a clean state." do
36
- output.puts "Pry reset."
37
- exec "pry"
38
- end
39
-
40
- create_command(/wtf([?!]*)/, "Show the backtrace of the most recent exception") do
41
- options :listing => 'wtf?'
42
-
43
- banner <<-BANNER
44
- Show's a few lines of the backtrace of the most recent exception (also available
45
- as _ex_.backtrace).
46
-
47
- If you want to see more lines, add more question marks or exclamation marks:
48
-
49
- e.g.
50
- pry(main)> wtf?
51
- pry(main)> wtf?!???!?!?
52
-
53
- To see the entire backtrace, pass the -v/--verbose flag:
54
-
55
- e.g.
56
- pry(main)> wtf -v
57
- BANNER
58
-
59
- def options(opt)
60
- opt.on(:v, :verbose, "Show the full backtrace.")
61
- end
62
-
63
- def process
64
- raise Pry::CommandError, "No most-recent exception" unless _pry_.last_exception
65
-
66
- output.puts "#{text.bold('Exception:')} #{_pry_.last_exception.class}: #{_pry_.last_exception}\n--"
67
- if opts.verbose?
68
- output.puts Code.new(_pry_.last_exception.backtrace, 0, :text).with_line_numbers.to_s
69
- else
70
- output.puts Code.new(_pry_.last_exception.backtrace.first([captures[0].size, 0.5].max * 10), 0, :text).with_line_numbers.to_s
71
- end
72
- end
73
- end
74
-
75
- # N.B. using a regular expresion here so that "raise-up 'foo'" does the right thing.
76
- create_command(/raise-up(!?\b.*)/, :listing => 'raise-up') do
77
- description "Raise an exception out of the current pry instance."
78
- banner <<-BANNER
79
- Raise up, like exit, allows you to quit pry. Instead of returning a value however, it raises an exception.
80
- If you don't provide the exception to be raised, it will use the most recent exception (in pry _ex_).
81
-
82
- e.g. `raise-up "get-me-out-of-here"` is equivalent to:
83
- `raise "get-me-out-of-here"
84
- raise-up`
85
-
86
- When called as raise-up! (with an exclamation mark), this command raises the exception through
87
- any nested prys you have created by "cd"ing into objects.
88
- BANNER
89
-
90
- def process
91
- return stagger_output help if captures[0] =~ /(-h|--help)\b/
92
- # Handle 'raise-up', 'raise-up "foo"', 'raise-up RuntimeError, 'farble' in a rubyesque manner
93
- target.eval("_pry_.raise_up#{captures[0]}")
94
- end
95
- end
96
- end
97
- end
98
- end