pry 0.11.3 → 0.12.2

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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +157 -1
  3. data/LICENSE +1 -1
  4. data/README.md +13 -30
  5. data/bin/pry +0 -4
  6. data/lib/pry/cli.rb +17 -24
  7. data/lib/pry/code/code_file.rb +5 -4
  8. data/lib/pry/code/code_range.rb +3 -3
  9. data/lib/pry/code/loc.rb +14 -8
  10. data/lib/pry/code.rb +6 -6
  11. data/lib/pry/code_object.rb +4 -4
  12. data/lib/pry/color_printer.rb +1 -0
  13. data/lib/pry/command.rb +36 -29
  14. data/lib/pry/command_set.rb +17 -52
  15. data/lib/pry/commands/amend_line.rb +3 -4
  16. data/lib/pry/commands/bang.rb +1 -1
  17. data/lib/pry/commands/cat/exception_formatter.rb +9 -8
  18. data/lib/pry/commands/cat/input_expression_formatter.rb +1 -1
  19. data/lib/pry/commands/cat.rb +7 -6
  20. data/lib/pry/commands/change_prompt.rb +29 -9
  21. data/lib/pry/commands/clear_screen.rb +14 -0
  22. data/lib/pry/commands/code_collector.rb +9 -9
  23. data/lib/pry/commands/easter_eggs.rb +3 -3
  24. data/lib/pry/commands/edit.rb +8 -7
  25. data/lib/pry/commands/exit.rb +2 -1
  26. data/lib/pry/commands/find_method.rb +11 -13
  27. data/lib/pry/commands/gem_cd.rb +1 -1
  28. data/lib/pry/commands/gem_install.rb +2 -2
  29. data/lib/pry/commands/gem_list.rb +2 -2
  30. data/lib/pry/commands/gem_open.rb +1 -1
  31. data/lib/pry/commands/gem_search.rb +2 -2
  32. data/lib/pry/commands/gem_stats.rb +83 -0
  33. data/lib/pry/commands/gist.rb +7 -6
  34. data/lib/pry/commands/help.rb +3 -3
  35. data/lib/pry/commands/hist.rb +9 -8
  36. data/lib/pry/commands/import_set.rb +2 -1
  37. data/lib/pry/commands/install_command.rb +7 -6
  38. data/lib/pry/commands/list_inspectors.rb +2 -2
  39. data/lib/pry/commands/ls/constants.rb +4 -4
  40. data/lib/pry/commands/ls/formatter.rb +3 -2
  41. data/lib/pry/commands/ls/globals.rb +0 -2
  42. data/lib/pry/commands/ls/grep.rb +0 -2
  43. data/lib/pry/commands/ls/instance_vars.rb +0 -1
  44. data/lib/pry/commands/ls/local_names.rb +0 -2
  45. data/lib/pry/commands/ls/local_vars.rb +0 -2
  46. data/lib/pry/commands/ls/ls_entity.rb +0 -1
  47. data/lib/pry/commands/ls/methods.rb +0 -3
  48. data/lib/pry/commands/ls/methods_helper.rb +1 -1
  49. data/lib/pry/commands/ls/self_methods.rb +0 -1
  50. data/lib/pry/commands/ls.rb +27 -30
  51. data/lib/pry/commands/play.rb +1 -2
  52. data/lib/pry/commands/pry_backtrace.rb +1 -1
  53. data/lib/pry/commands/raise_up.rb +2 -1
  54. data/lib/pry/commands/ri.rb +5 -4
  55. data/lib/pry/commands/shell_command.rb +3 -2
  56. data/lib/pry/commands/shell_mode.rb +6 -6
  57. data/lib/pry/commands/show_doc.rb +5 -7
  58. data/lib/pry/commands/show_info.rb +25 -18
  59. data/lib/pry/commands/show_source.rb +5 -2
  60. data/lib/pry/commands/stat.rb +1 -1
  61. data/lib/pry/commands/watch_expression.rb +9 -7
  62. data/lib/pry/commands/whereami.rb +4 -4
  63. data/lib/pry/commands/wtf.rb +15 -2
  64. data/lib/pry/config/behavior.rb +229 -205
  65. data/lib/pry/config/convenience.rb +24 -21
  66. data/lib/pry/config/default.rb +153 -143
  67. data/lib/pry/config/memoization.rb +41 -37
  68. data/lib/pry/config.rb +33 -9
  69. data/lib/pry/core_extensions.rb +4 -3
  70. data/lib/pry/editor.rb +5 -12
  71. data/lib/pry/exceptions.rb +0 -2
  72. data/lib/pry/helpers/base_helpers.rb +133 -4
  73. data/lib/pry/helpers/command_helpers.rb +5 -4
  74. data/lib/pry/helpers/documentation_helpers.rb +2 -2
  75. data/lib/pry/helpers/options_helpers.rb +5 -5
  76. data/lib/pry/helpers/platform.rb +58 -0
  77. data/lib/pry/helpers/table.rb +20 -15
  78. data/lib/pry/helpers/text.rb +3 -4
  79. data/lib/pry/helpers.rb +1 -0
  80. data/lib/pry/history.rb +21 -8
  81. data/lib/pry/hooks.rb +3 -3
  82. data/lib/pry/indent.rb +15 -17
  83. data/lib/pry/input_completer.rb +12 -7
  84. data/lib/pry/input_lock.rb +0 -2
  85. data/lib/pry/last_exception.rb +1 -1
  86. data/lib/pry/method/disowned.rb +2 -1
  87. data/lib/pry/method/patcher.rb +2 -2
  88. data/lib/pry/method/weird_method_locator.rb +7 -8
  89. data/lib/pry/method.rb +37 -31
  90. data/lib/pry/object_path.rb +5 -4
  91. data/lib/pry/output.rb +3 -2
  92. data/lib/pry/pager.rb +194 -186
  93. data/lib/pry/platform.rb +79 -81
  94. data/lib/pry/plugins.rb +7 -3
  95. data/lib/pry/prompt.rb +144 -25
  96. data/lib/pry/pry_class.rb +53 -29
  97. data/lib/pry/pry_instance.rb +88 -55
  98. data/lib/pry/repl.rb +33 -4
  99. data/lib/pry/repl_file_loader.rb +1 -2
  100. data/lib/pry/ring.rb +84 -0
  101. data/lib/pry/rubygem.rb +6 -6
  102. data/lib/pry/slop/commands.rb +3 -4
  103. data/lib/pry/slop/option.rb +19 -21
  104. data/lib/pry/slop.rb +17 -17
  105. data/lib/pry/terminal.rb +2 -1
  106. data/lib/pry/testable/mockable.rb +2 -2
  107. data/lib/pry/testable/pry_tester.rb +1 -1
  108. data/lib/pry/testable/utility.rb +2 -2
  109. data/lib/pry/testable/variables.rb +1 -1
  110. data/lib/pry/version.rb +1 -1
  111. data/lib/pry/wrapped_module/candidate.rb +2 -2
  112. data/lib/pry/wrapped_module.rb +15 -15
  113. data/lib/pry.rb +17 -47
  114. metadata +8 -20
  115. data/lib/pry/commands/list_prompts.rb +0 -35
  116. data/lib/pry/commands/simple_prompt.rb +0 -22
  117. data/lib/pry/history_array.rb +0 -121
  118. data/lib/pry/rbx_path.rb +0 -22
@@ -34,7 +34,7 @@ class Pry::InputCompleter
34
34
  "yield" ]
35
35
 
36
36
  Operators = [
37
- "%", "&", "*", "**", "+", "-", "/",
37
+ "%", "&", "*", "**", "+", "-", "/",
38
38
  "<", "<<", "<=", "<=>", "==", "===", "=~", ">", ">=", ">>",
39
39
  "[]", "[]=", "^", "!", "!=", "!~"
40
40
  ]
@@ -92,7 +92,7 @@ class Pry::InputCompleter
92
92
  when SYMBOL_REGEXP # Symbol
93
93
  if Symbol.respond_to?(:all_symbols)
94
94
  sym = Regexp.quote($1)
95
- candidates = Symbol.all_symbols.collect{|s| ":" << s.id2name}
95
+ candidates = Symbol.all_symbols.collect { |s| ":" << s.id2name }
96
96
  candidates.grep(/^#{sym}/)
97
97
  else
98
98
  []
@@ -100,7 +100,7 @@ class Pry::InputCompleter
100
100
  when TOPLEVEL_LOOKUP_REGEXP # Absolute Constant or class methods
101
101
  receiver = $1
102
102
  candidates = Object.constants.collect(&:to_s)
103
- candidates.grep(/^#{receiver}/).collect{|e| "::" << e}
103
+ candidates.grep(/^#{receiver}/).collect { |e| "::" << e }
104
104
  when CONSTANT_REGEXP # Constant
105
105
  message = $1
106
106
  begin
@@ -120,7 +120,7 @@ class Pry::InputCompleter
120
120
  rescue Pry::RescuableException
121
121
  candidates = []
122
122
  end
123
- candidates.grep(/^#{message}/).collect{|e| receiver + "::" + e}
123
+ candidates.grep(/^#{message}/).collect { |e| receiver + "::" + e }
124
124
  when SYMBOL_METHOD_CALL_REGEXP # method call on a Symbol
125
125
  receiver = $1
126
126
  message = Regexp.quote($2)
@@ -167,10 +167,12 @@ class Pry::InputCompleter
167
167
  end
168
168
  else
169
169
  # func1.func2
170
+ require 'set'
170
171
  candidates = Set.new
171
172
  to_ignore = ignored_modules
172
- ObjectSpace.each_object(Module){|m|
173
+ ObjectSpace.each_object(Module) { |m|
173
174
  next if (to_ignore.include?(m) rescue true)
175
+
174
176
  # jruby doesn't always provide #instance_methods() on each
175
177
  # object.
176
178
  if m.respond_to?(:instance_methods)
@@ -195,7 +197,7 @@ class Pry::InputCompleter
195
197
  if eval("respond_to?(:class_variables)", bind)
196
198
  candidates += eval("class_variables", bind).collect(&:to_s)
197
199
  end
198
- candidates = (candidates|ReservedWords|custom_completions).grep(/^#{Regexp.quote(input)}/)
200
+ candidates = (candidates | ReservedWords | custom_completions).grep(/^#{Regexp.quote(input)}/)
199
201
  candidates.collect(&path)
200
202
  end
201
203
  rescue Pry::RescuableException
@@ -220,7 +222,8 @@ class Pry::InputCompleter
220
222
  # path is a proc that takes an input and builds a full path.
221
223
  def build_path(input)
222
224
  # check to see if the input is a regex
223
- return proc {|i| i.to_s }, input if input[/\/\./]
225
+ return proc { |i| i.to_s }, input if input[/\/\./]
226
+
224
227
  trailing_slash = input.end_with?('/')
225
228
  contexts = input.chomp('/').split(/\//)
226
229
  input = contexts[-1]
@@ -241,6 +244,7 @@ class Pry::InputCompleter
241
244
 
242
245
  scanner = lambda do |m|
243
246
  next if s.include?(m) # IRB::ExtendCommandBundle::EXCB recurses.
247
+
244
248
  s << m
245
249
  m.constants(false).each do |c|
246
250
  value = m.const_get(c)
@@ -251,6 +255,7 @@ class Pry::InputCompleter
251
255
  # FIXME: Add Pry here as well?
252
256
  [:IRB, :SLex, :RubyLex, :RubyToken].each do |module_name|
253
257
  next unless Object.const_defined?(module_name)
258
+
254
259
  scanner.call(Object.const_get(module_name))
255
260
  end
256
261
 
@@ -1,5 +1,3 @@
1
- require 'thread'
2
-
3
1
  class Pry
4
2
  # There is one InputLock per input (such as STDIN) as two REPLs on the same
5
3
  # input makes things delirious. InputLock serializes accesses to the input so
@@ -23,7 +23,7 @@ class Pry::LastException < BasicObject
23
23
  end
24
24
  end
25
25
 
26
- def respond_to_missing?(name, include_all=false)
26
+ def respond_to_missing?(name, include_all = false)
27
27
  @e.respond_to?(name, include_all)
28
28
  end
29
29
 
@@ -20,7 +20,7 @@ class Pry
20
20
  #
21
21
  # @param [Object] receiver
22
22
  # @param [String] method_name
23
- def initialize(receiver, method_name, binding=nil)
23
+ def initialize(receiver, method_name)
24
24
  @receiver, @name = receiver, method_name
25
25
  @method = nil
26
26
  end
@@ -47,6 +47,7 @@ class Pry
47
47
  # Raise a more useful error message instead of trying to forward to nil.
48
48
  def method_missing(meth_name, *args, &block)
49
49
  raise "Cannot call '#{meth_name}' on an undef'd method." if method(:name).respond_to?(meth_name)
50
+
50
51
  Object.instance_method(:method_missing).bind(self).call(meth_name, *args, &block)
51
52
  end
52
53
  end
@@ -94,7 +94,7 @@ class Pry
94
94
  def wrap_for_owner(source)
95
95
  Pry.current[:pry_owner] = method.owner
96
96
  owner_source = definition_for_owner(source)
97
- visibility_fix = "#{method.visibility.to_s} #{method.name.to_sym.inspect}"
97
+ visibility_fix = "#{method.visibility} #{method.name.to_sym.inspect}"
98
98
  "Pry.current[:pry_owner].class_eval do; #{owner_source}\n#{visibility_fix}\nend"
99
99
  end
100
100
 
@@ -113,7 +113,7 @@ class Pry
113
113
  def wrap_for_nesting(source)
114
114
  nesting = Pry::Code.from_file(method.source_file).nesting_at(method.source_line)
115
115
 
116
- (nesting + [source] + nesting.map{ "end" } + [""]).join(";")
116
+ (nesting + [source] + nesting.map { "end" } + [""]).join(";")
117
117
  rescue Pry::Indent::UnparseableNestingError
118
118
  source
119
119
  end
@@ -1,6 +1,5 @@
1
1
  class Pry
2
2
  class Method
3
-
4
3
  # This class is responsible for locating the *real* `Pry::Method`
5
4
  # object captured by a binding.
6
5
  #
@@ -16,7 +15,6 @@ class Pry
16
15
  # Pry::Method and return it, or return nil if we fail.
17
16
  class WeirdMethodLocator
18
17
  class << self
19
-
20
18
  # Whether the given method object matches the associated binding.
21
19
  # If the method object does not match the binding, then it's
22
20
  # most likely not the method captured by the binding, and we
@@ -67,7 +65,7 @@ class Pry
67
65
 
68
66
  def skip_superclass_search?
69
67
  target_mod = @target.eval('self').class
70
- target_mod.ancestors.take_while {|mod| mod != target_mod }.any?
68
+ target_mod.ancestors.take_while { |mod| mod != target_mod }.any?
71
69
  end
72
70
 
73
71
  def normal_method?(method)
@@ -100,8 +98,7 @@ class Pry
100
98
  # __FILE__ and __LINE__ the binding is at, we can hope to disambiguate these cases.
101
99
  #
102
100
  # This obviously won't work if the source is unavaiable for some reason, or if both
103
- # methods have the same __FILE__ and __LINE__, or if we're in rbx where b.eval('__LINE__')
104
- # is broken.
101
+ # methods have the same __FILE__ and __LINE__.
105
102
  #
106
103
  # @return [Pry::Method, nil] The Pry::Method representing the
107
104
  # superclass method.
@@ -110,6 +107,7 @@ class Pry
110
107
  if skip_superclass_search?
111
108
  return guess
112
109
  end
110
+
113
111
  while guess
114
112
  # needs rescue if this is a Disowned method or a C method or something...
115
113
  # TODO: Fix up the exception handling so we don't need a bare rescue
@@ -122,9 +120,9 @@ class Pry
122
120
  end
123
121
  end
124
122
 
125
- # Uhoh... none of the methods in the chain had the right __FILE__ and __LINE__
126
- # This may be caused by rbx https://github.com/rubinius/rubinius/issues/953,
127
- # or other unknown circumstances (TODO: we should warn the user when this happens)
123
+ # Uhoh... none of the methods in the chain had the right `__FILE__` and
124
+ # `__LINE__` due to unknown circumstances.
125
+ # TODO: we should warn the user when this happens.
128
126
  nil
129
127
  end
130
128
 
@@ -136,6 +134,7 @@ class Pry
136
134
  # renamed method
137
135
  def find_renamed_method
138
136
  return if !valid_file?(target_file)
137
+
139
138
  alias_name = all_methods_for(target_self).find do |v|
140
139
  expanded_source_location(target_self.method(v).source_location) == renamed_method_source_location
141
140
  end
data/lib/pry/method.rb CHANGED
@@ -39,7 +39,7 @@ class Pry
39
39
  # contain any context.
40
40
  # @return [Pry::Method, nil] A `Pry::Method` instance containing the requested
41
41
  # method, or `nil` if name is `nil` or no method could be located matching the parameters.
42
- def from_str(name, target=TOPLEVEL_BINDING, options={})
42
+ def from_str(name, target = TOPLEVEL_BINDING, options = {})
43
43
  if name.nil?
44
44
  nil
45
45
  elsif name.to_s =~ /(.+)\#(\S+)\Z/
@@ -56,8 +56,8 @@ class Pry
56
56
  elsif options[:methods]
57
57
  from_obj(target.eval("self"), name, target)
58
58
  else
59
- from_str(name, target, :instance => true) or
60
- from_str(name, target, :methods => true)
59
+ from_str(name, target, instance: true) or
60
+ from_str(name, target, methods: true)
61
61
  end
62
62
 
63
63
  rescue Pry::RescuableException
@@ -101,7 +101,7 @@ class Pry
101
101
  # @param [Symbol] method_type The type of method: :method or :instance_method
102
102
  # @param [Binding] target The binding where the method is looked up.
103
103
  # @return [Method, UnboundMethod] The 'refined' method object.
104
- def lookup_method_via_binding(obj, method_name, method_type, target=TOPLEVEL_BINDING)
104
+ def lookup_method_via_binding(obj, method_name, method_type, target = TOPLEVEL_BINDING)
105
105
  Pry.current[:obj] = obj
106
106
  Pry.current[:name] = method_name
107
107
  receiver = obj.is_a?(Module) ? "Module" : "Kernel"
@@ -118,7 +118,7 @@ class Pry
118
118
  # @param [String] name
119
119
  # @param [Binding] target The binding where the method is looked up.
120
120
  # @return [Pry::Method, nil]
121
- def from_class(klass, name, target=TOPLEVEL_BINDING)
121
+ def from_class(klass, name, target = TOPLEVEL_BINDING)
122
122
  new(lookup_method_via_binding(klass, name, :instance_method, target)) rescue nil
123
123
  end
124
124
  alias from_module from_class
@@ -131,7 +131,7 @@ class Pry
131
131
  # @param [String] name
132
132
  # @param [Binding] target The binding where the method is looked up.
133
133
  # @return [Pry::Method, nil]
134
- def from_obj(obj, name, target=TOPLEVEL_BINDING)
134
+ def from_obj(obj, name, target = TOPLEVEL_BINDING)
135
135
  new(lookup_method_via_binding(obj, name, :method, target)) rescue nil
136
136
  end
137
137
 
@@ -139,10 +139,10 @@ class Pry
139
139
  # @param [Class,Module] klass
140
140
  # @param [Boolean] include_super Whether to include methods from ancestors.
141
141
  # @return [Array[Pry::Method]]
142
- def all_from_class(klass, include_super=true)
142
+ def all_from_class(klass, include_super = true)
143
143
  %w(public protected private).flat_map do |visibility|
144
144
  safe_send(klass, :"#{visibility}_instance_methods", include_super).map do |method_name|
145
- new(safe_send(klass, :instance_method, method_name), :visibility => visibility.to_sym)
145
+ new(safe_send(klass, :instance_method, method_name), visibility: visibility.to_sym)
146
146
  end
147
147
  end
148
148
  end
@@ -157,7 +157,7 @@ class Pry
157
157
  #
158
158
  # @return [Array[Pry::Method]]
159
159
  #
160
- def all_from_obj(obj, include_super=true)
160
+ def all_from_obj(obj, include_super = true)
161
161
  all_from_class(singleton_class_of(obj), include_super)
162
162
  end
163
163
 
@@ -166,7 +166,7 @@ class Pry
166
166
  # please use {all_from_obj} instead.
167
167
  # the `method_type` argument is ignored.
168
168
  #
169
- def all_from_common(obj, method_type = nil, include_super=true)
169
+ def all_from_common(obj, _method_type = nil, include_super = true)
170
170
  all_from_obj(obj, include_super)
171
171
  end
172
172
 
@@ -233,7 +233,7 @@ class Pry
233
233
  # @param [::Method, UnboundMethod, Proc] method
234
234
  # @param [Hash] known_info Can be used to pre-cache expensive to compute stuff.
235
235
  # @return [Pry::Method]
236
- def initialize(method, known_info={})
236
+ def initialize(method, known_info = {})
237
237
  @method = method
238
238
  @visibility = known_info[:visibility]
239
239
  end
@@ -298,7 +298,8 @@ class Pry
298
298
  # @return [String, nil] The documentation for the method, or `nil` if it's
299
299
  # unavailable.
300
300
  def doc
301
- @doc ||= case source_type
301
+ @doc ||=
302
+ case source_type
302
303
  when :c
303
304
  info = pry_doc_info
304
305
  info.docstring if info
@@ -317,7 +318,7 @@ class Pry
317
318
  # `nil` if the filename is unavailable.
318
319
  def source_file
319
320
  if source_location.nil?
320
- if !rbx? and source_type == :c
321
+ if source_type == :c
321
322
  info = pry_doc_info
322
323
  info.file if info
323
324
  end
@@ -354,20 +355,24 @@ class Pry
354
355
 
355
356
  # @return [String] A representation of the method's signature, including its
356
357
  # name and parameters. Optional and "rest" parameters are marked with `*`
357
- # and block parameters with `&`. If the parameter names are unavailable,
358
- # they're given numbered names instead.
358
+ # and block parameters with `&`. Keyword arguments are shown with `:`
359
+ # If the parameter names are unavailable, they're given numbered names instead.
359
360
  # Paraphrased from `awesome_print` gem.
360
361
  def signature
361
362
  if respond_to?(:parameters)
362
- args = parameters.inject([]) do |arr, (typ, nam)|
363
- nam ||= (typ == :block ? 'block' : "arg#{arr.size + 1}")
364
- arr << case typ
365
- when :req then nam.to_s
366
- when :opt then "#{nam}=?"
367
- when :rest then "*#{nam}"
368
- when :block then "&#{nam}"
369
- else '?'
370
- end
363
+ args = parameters.inject([]) do |args_array, (arg_type, name)|
364
+ name ||= (arg_type == :block ? 'block' : "arg#{args_array.size + 1}")
365
+ args_array.push(
366
+ case arg_type
367
+ when :req then name.to_s
368
+ when :opt then "#{name}=?"
369
+ when :rest then "*#{name}"
370
+ when :block then "&#{name}"
371
+ when :key then "#{name}:?"
372
+ when :keyreq then "#{name}:"
373
+ else '?'
374
+ end
375
+ )
371
376
  end
372
377
  else
373
378
  args = (1..arity.abs).map { |i| "arg#{i}" }
@@ -379,7 +384,7 @@ class Pry
379
384
 
380
385
  # @return [Pry::Method, nil] The wrapped method that is called when you
381
386
  # use "super" in the body of this method.
382
- def super(times=1)
387
+ def super(times = 1)
383
388
  if UnboundMethod === @method
384
389
  sup = super_using_ancestors(Pry::Method.instance_resolution_order(owner), times)
385
390
  else
@@ -393,6 +398,7 @@ class Pry
393
398
  # before any aliasing, or `nil` if it can't be determined.
394
399
  def original_name
395
400
  return nil if source_type != :ruby
401
+
396
402
  method_name_from_first_line(source.lines.first)
397
403
  end
398
404
 
@@ -461,7 +467,7 @@ class Pry
461
467
 
462
468
  # @param [String, Symbol] method_name
463
469
  # @return [Boolean]
464
- def respond_to?(method_name, include_all=false)
470
+ def respond_to?(method_name, include_all = false)
465
471
  super or @method.respond_to?(method_name, include_all)
466
472
  end
467
473
 
@@ -483,7 +489,7 @@ class Pry
483
489
  Pry::MethodInfo.info_for(@method) or raise CommandError, "Cannot locate this method: #{name}. (source_location returns nil)"
484
490
  else
485
491
  fail_msg = "Cannot locate this method: #{name}."
486
- if mri?
492
+ if Helpers::Platform.mri?
487
493
  fail_msg += " Invoke the 'gem-install pry-doc' Pry command to get access to Ruby Core documentation.\n"
488
494
  end
489
495
  raise CommandError, fail_msg
@@ -492,7 +498,7 @@ class Pry
492
498
 
493
499
  # @param [Class, Module] ancestors The ancestors to investigate
494
500
  # @return [Method] The unwrapped super-method
495
- def super_using_ancestors(ancestors, times=1)
501
+ def super_using_ancestors(ancestors, times = 1)
496
502
  next_owner = self.owner
497
503
  times.times do
498
504
  i = ancestors.index(next_owner) + 1
@@ -529,9 +535,9 @@ class Pry
529
535
  end
530
536
 
531
537
  def ruby_source
532
- # clone of MethodSource.source_helper that knows to use our
533
- # hacked version of source_location for rbx core methods, and
534
- # our input buffer for methods defined in (pry)
538
+ # Clone of `MethodSource.source_helper` that knows to use our
539
+ # hacked version of `source_location` for our input buffer for methods
540
+ # defined in `(pry)`.
535
541
  file, line = *source_location
536
542
  raise SourceNotFoundError, "Could not locate source for #{name_with_owner}!" unless file
537
543
 
@@ -28,7 +28,7 @@ class Pry
28
28
  stack = @current_stack.dup
29
29
 
30
30
  begin
31
- next_segment = ""
31
+ next_segment = ""
32
32
 
33
33
  loop do
34
34
  # Scan for as long as we don't see a slash
@@ -74,9 +74,10 @@ class Pry
74
74
  "Exception: #{err.inspect}"
75
75
  ].join("\n")
76
76
 
77
- raise CommandError.new(msg).tap { |e|
78
- e.set_backtrace err.backtrace
79
- }
77
+ command_error = CommandError.new(msg)
78
+ command_error.set_backtrace(err.backtrace)
79
+
80
+ raise command_error
80
81
  end
81
82
  end
82
83
  end
data/lib/pry/output.rb CHANGED
@@ -8,8 +8,9 @@ class Pry::Output
8
8
 
9
9
  def puts(*objs)
10
10
  return print "\n" if objs.empty?
11
+
11
12
  objs.each do |obj|
12
- if ary = Array.try_convert(obj)
13
+ if (ary = Array.try_convert(obj))
13
14
  puts(*ary)
14
15
  else
15
16
  print "#{obj.to_s.chomp}\n"
@@ -35,7 +36,7 @@ class Pry::Output
35
36
  @boxed_io.__send__(name, *args, &block)
36
37
  end
37
38
 
38
- def respond_to_missing?(m, include_all=false)
39
+ def respond_to_missing?(m, include_all = false)
39
40
  @boxed_io.respond_to?(m, include_all)
40
41
  end
41
42