pry 0.12.0 → 0.14.0

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 (158) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +162 -1
  3. data/LICENSE +1 -1
  4. data/README.md +331 -269
  5. data/bin/pry +5 -0
  6. data/lib/pry.rb +132 -119
  7. data/lib/pry/basic_object.rb +8 -4
  8. data/lib/pry/block_command.rb +22 -0
  9. data/lib/pry/class_command.rb +194 -0
  10. data/lib/pry/cli.rb +43 -51
  11. data/lib/pry/code.rb +40 -28
  12. data/lib/pry/code/code_file.rb +28 -24
  13. data/lib/pry/code/code_range.rb +4 -2
  14. data/lib/pry/code/loc.rb +15 -8
  15. data/lib/pry/code_object.rb +40 -38
  16. data/lib/pry/color_printer.rb +47 -46
  17. data/lib/pry/command.rb +166 -369
  18. data/lib/pry/command_set.rb +76 -73
  19. data/lib/pry/command_state.rb +31 -0
  20. data/lib/pry/commands/amend_line.rb +86 -81
  21. data/lib/pry/commands/bang.rb +18 -14
  22. data/lib/pry/commands/bang_pry.rb +15 -11
  23. data/lib/pry/commands/cat.rb +61 -54
  24. data/lib/pry/commands/cat/abstract_formatter.rb +23 -18
  25. data/lib/pry/commands/cat/exception_formatter.rb +71 -60
  26. data/lib/pry/commands/cat/file_formatter.rb +55 -49
  27. data/lib/pry/commands/cat/input_expression_formatter.rb +35 -30
  28. data/lib/pry/commands/cd.rb +40 -35
  29. data/lib/pry/commands/change_inspector.rb +29 -22
  30. data/lib/pry/commands/change_prompt.rb +44 -39
  31. data/lib/pry/commands/clear_screen.rb +16 -10
  32. data/lib/pry/commands/code_collector.rb +148 -133
  33. data/lib/pry/commands/disable_pry.rb +23 -19
  34. data/lib/pry/commands/easter_eggs.rb +19 -30
  35. data/lib/pry/commands/edit.rb +184 -161
  36. data/lib/pry/commands/edit/exception_patcher.rb +21 -17
  37. data/lib/pry/commands/edit/file_and_line_locator.rb +34 -23
  38. data/lib/pry/commands/exit.rb +39 -35
  39. data/lib/pry/commands/exit_all.rb +24 -20
  40. data/lib/pry/commands/exit_program.rb +20 -16
  41. data/lib/pry/commands/find_method.rb +168 -160
  42. data/lib/pry/commands/fix_indent.rb +16 -12
  43. data/lib/pry/commands/help.rb +140 -133
  44. data/lib/pry/commands/hist.rb +151 -150
  45. data/lib/pry/commands/import_set.rb +20 -16
  46. data/lib/pry/commands/jump_to.rb +25 -21
  47. data/lib/pry/commands/list_inspectors.rb +35 -28
  48. data/lib/pry/commands/ls.rb +124 -102
  49. data/lib/pry/commands/ls/constants.rb +59 -42
  50. data/lib/pry/commands/ls/formatter.rb +50 -46
  51. data/lib/pry/commands/ls/globals.rb +38 -34
  52. data/lib/pry/commands/ls/grep.rb +17 -13
  53. data/lib/pry/commands/ls/instance_vars.rb +29 -27
  54. data/lib/pry/commands/ls/interrogatable.rb +18 -12
  55. data/lib/pry/commands/ls/jruby_hacks.rb +47 -41
  56. data/lib/pry/commands/ls/local_names.rb +26 -22
  57. data/lib/pry/commands/ls/local_vars.rb +38 -28
  58. data/lib/pry/commands/ls/ls_entity.rb +47 -51
  59. data/lib/pry/commands/ls/methods.rb +44 -43
  60. data/lib/pry/commands/ls/methods_helper.rb +46 -42
  61. data/lib/pry/commands/ls/self_methods.rb +23 -22
  62. data/lib/pry/commands/nesting.rb +21 -17
  63. data/lib/pry/commands/play.rb +93 -82
  64. data/lib/pry/commands/pry_backtrace.rb +22 -17
  65. data/lib/pry/commands/pry_version.rb +15 -11
  66. data/lib/pry/commands/raise_up.rb +27 -22
  67. data/lib/pry/commands/reload_code.rb +60 -48
  68. data/lib/pry/commands/reset.rb +16 -12
  69. data/lib/pry/commands/ri.rb +55 -45
  70. data/lib/pry/commands/save_file.rb +45 -43
  71. data/lib/pry/commands/shell_command.rb +51 -51
  72. data/lib/pry/commands/shell_mode.rb +21 -17
  73. data/lib/pry/commands/show_doc.rb +80 -68
  74. data/lib/pry/commands/show_info.rb +189 -171
  75. data/lib/pry/commands/show_input.rb +16 -11
  76. data/lib/pry/commands/show_source.rb +110 -45
  77. data/lib/pry/commands/stat.rb +35 -31
  78. data/lib/pry/commands/switch_to.rb +21 -15
  79. data/lib/pry/commands/toggle_color.rb +20 -16
  80. data/lib/pry/commands/watch_expression.rb +89 -86
  81. data/lib/pry/commands/watch_expression/expression.rb +32 -27
  82. data/lib/pry/commands/whereami.rb +156 -148
  83. data/lib/pry/commands/wtf.rb +75 -50
  84. data/lib/pry/config.rb +307 -25
  85. data/lib/pry/config/attributable.rb +22 -0
  86. data/lib/pry/config/lazy_value.rb +29 -0
  87. data/lib/pry/config/memoized_value.rb +34 -0
  88. data/lib/pry/config/value.rb +24 -0
  89. data/lib/pry/control_d_handler.rb +28 -0
  90. data/lib/pry/core_extensions.rb +9 -7
  91. data/lib/pry/editor.rb +48 -21
  92. data/lib/pry/env.rb +18 -0
  93. data/lib/pry/exception_handler.rb +43 -0
  94. data/lib/pry/exceptions.rb +13 -16
  95. data/lib/pry/forwardable.rb +5 -1
  96. data/lib/pry/helpers.rb +2 -0
  97. data/lib/pry/helpers/base_helpers.rb +68 -197
  98. data/lib/pry/helpers/command_helpers.rb +50 -61
  99. data/lib/pry/helpers/documentation_helpers.rb +20 -13
  100. data/lib/pry/helpers/options_helpers.rb +14 -7
  101. data/lib/pry/helpers/platform.rb +7 -5
  102. data/lib/pry/helpers/table.rb +33 -26
  103. data/lib/pry/helpers/text.rb +17 -14
  104. data/lib/pry/history.rb +48 -56
  105. data/lib/pry/hooks.rb +21 -12
  106. data/lib/pry/indent.rb +54 -50
  107. data/lib/pry/input_completer.rb +248 -230
  108. data/lib/pry/input_lock.rb +8 -9
  109. data/lib/pry/inspector.rb +36 -24
  110. data/lib/pry/last_exception.rb +45 -45
  111. data/lib/pry/method.rb +141 -94
  112. data/lib/pry/method/disowned.rb +16 -4
  113. data/lib/pry/method/patcher.rb +12 -3
  114. data/lib/pry/method/weird_method_locator.rb +68 -44
  115. data/lib/pry/object_path.rb +33 -25
  116. data/lib/pry/output.rb +121 -35
  117. data/lib/pry/pager.rb +186 -180
  118. data/lib/pry/prompt.rb +123 -54
  119. data/lib/pry/pry_class.rb +61 -103
  120. data/lib/pry/pry_instance.rb +217 -215
  121. data/lib/pry/repl.rb +18 -22
  122. data/lib/pry/repl_file_loader.rb +27 -21
  123. data/lib/pry/ring.rb +11 -6
  124. data/lib/pry/slop.rb +574 -563
  125. data/lib/pry/slop/commands.rb +164 -169
  126. data/lib/pry/slop/option.rb +172 -168
  127. data/lib/pry/syntax_highlighter.rb +26 -0
  128. data/lib/pry/system_command_handler.rb +17 -0
  129. data/lib/pry/testable.rb +59 -61
  130. data/lib/pry/testable/evalable.rb +21 -12
  131. data/lib/pry/testable/mockable.rb +18 -10
  132. data/lib/pry/testable/pry_tester.rb +71 -56
  133. data/lib/pry/testable/utility.rb +29 -21
  134. data/lib/pry/testable/variables.rb +49 -43
  135. data/lib/pry/version.rb +3 -1
  136. data/lib/pry/warning.rb +27 -0
  137. data/lib/pry/wrapped_module.rb +51 -42
  138. data/lib/pry/wrapped_module/candidate.rb +21 -14
  139. metadata +35 -35
  140. data/lib/pry/commands.rb +0 -6
  141. data/lib/pry/commands/disabled_commands.rb +0 -2
  142. data/lib/pry/commands/gem_cd.rb +0 -26
  143. data/lib/pry/commands/gem_install.rb +0 -32
  144. data/lib/pry/commands/gem_list.rb +0 -33
  145. data/lib/pry/commands/gem_open.rb +0 -29
  146. data/lib/pry/commands/gem_readme.rb +0 -25
  147. data/lib/pry/commands/gem_search.rb +0 -40
  148. data/lib/pry/commands/gem_stats.rb +0 -83
  149. data/lib/pry/commands/gist.rb +0 -102
  150. data/lib/pry/commands/install_command.rb +0 -54
  151. data/lib/pry/config/behavior.rb +0 -255
  152. data/lib/pry/config/convenience.rb +0 -28
  153. data/lib/pry/config/default.rb +0 -159
  154. data/lib/pry/config/memoization.rb +0 -48
  155. data/lib/pry/platform.rb +0 -91
  156. data/lib/pry/plugins.rb +0 -122
  157. data/lib/pry/rubygem.rb +0 -84
  158. data/lib/pry/terminal.rb +0 -91
@@ -1,46 +1,52 @@
1
- module Pry::Testable::Variables
2
- #
3
- # @example
4
- # temporary_constants(:Foo, :Bar) do
5
- # Foo = Class.new(RuntimeError)
6
- # Bar = Class.new(RuntimeError)
7
- # end
8
- # Foo # => NameError
9
- # Bar # => NameError
10
- #
11
- # @param [Array<Symbol>] names
12
- # An array of constant names that be defined by a block,
13
- # and removed by this method afterwards.
14
- #
15
- # @return [void]
16
- #
17
- def temporary_constants(*names)
18
- names.each do |name|
19
- Object.remove_const name if Object.const_defined?(name)
20
- end
21
- yield
22
- ensure
23
- names.each do |name|
24
- Object.remove_const name if Object.const_defined?(name)
25
- end
26
- end
1
+ # frozen_string_literal: true
27
2
 
28
- #
29
- # @param [String] name
30
- # The name of a variable.
31
- #
32
- # @param [String] value
33
- # Its value.
34
- #
35
- # @param [Binding] b
36
- # The binding object to insert a variable into.
37
- #
38
- # @return [void]
39
- #
40
- def insert_variable(name, value, b)
41
- Pry.current[:pry_local] = value
42
- b.eval("#{name} = ::Pry.current[:pry_local]")
43
- ensure
44
- Pry.current[:pry_local] = nil
3
+ class Pry
4
+ module Testable
5
+ module Variables
6
+ #
7
+ # @example
8
+ # temporary_constants(:Foo, :Bar) do
9
+ # Foo = Class.new(RuntimeError)
10
+ # Bar = Class.new(RuntimeError)
11
+ # end
12
+ # Foo # => NameError
13
+ # Bar # => NameError
14
+ #
15
+ # @param [Array<Symbol>] names
16
+ # An array of constant names that be defined by a block,
17
+ # and removed by this method afterwards.
18
+ #
19
+ # @return [void]
20
+ #
21
+ def temporary_constants(*names)
22
+ names.each do |name|
23
+ Object.remove_const name if Object.const_defined?(name)
24
+ end
25
+ yield
26
+ ensure
27
+ names.each do |name|
28
+ Object.remove_const name if Object.const_defined?(name)
29
+ end
30
+ end
31
+
32
+ #
33
+ # @param [String] name
34
+ # The name of a variable.
35
+ #
36
+ # @param [String] value
37
+ # Its value.
38
+ #
39
+ # @param [Binding] binding
40
+ # The binding object to insert a variable into.
41
+ #
42
+ # @return [void]
43
+ #
44
+ def insert_variable(name, value, binding)
45
+ Pry.current[:pry_local] = value
46
+ binding.eval("#{name} = ::Pry.current[:pry_local]")
47
+ ensure
48
+ Pry.current[:pry_local] = nil
49
+ end
50
+ end
45
51
  end
46
52
  end
data/lib/pry/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
- VERSION = '0.12.0'
4
+ VERSION = '0.14.0'.freeze
3
5
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Pry
4
+ # @api private
5
+ # @since v0.13.0
6
+ module Warning
7
+ # Prints a warning message with exact file and line location, similar to how
8
+ # Ruby's -W prints warnings.
9
+ #
10
+ # @param [String] message
11
+ # @return [void]
12
+ def self.warn(message)
13
+ if Kernel.respond_to?(:caller_locations)
14
+ location = caller_locations(2..2).first
15
+ path = location.path
16
+ lineno = location.lineno
17
+ else
18
+ # Ruby 1.9.3 support.
19
+ frame = caller[1].split(':') # rubocop:disable Performance/Caller
20
+ path = frame.first
21
+ lineno = frame[1]
22
+ end
23
+
24
+ Kernel.warn("#{path}:#{lineno}: warning: #{message}")
25
+ end
26
+ end
27
+ end
@@ -1,4 +1,4 @@
1
- require 'pry/wrapped_module/candidate'
1
+ # frozen_string_literal: true
2
2
 
3
3
  class Pry
4
4
  class << self
@@ -27,11 +27,7 @@ class Pry
27
27
  # @example
28
28
  # Pry::WrappedModule.from_str("Pry::Code")
29
29
  def self.from_str(mod_name, target = TOPLEVEL_BINDING)
30
- if safe_to_evaluate?(mod_name, target)
31
- Pry::WrappedModule.new(target.eval(mod_name))
32
- else
33
- nil
34
- end
30
+ Pry::WrappedModule.new(target.eval(mod_name)) if safe_to_evaluate?(mod_name, target)
35
31
  rescue RescuableException
36
32
  nil
37
33
  end
@@ -58,7 +54,10 @@ class Pry
58
54
  # @raise [ArgumentError] if the argument is not a `Module`
59
55
  # @param [Module] mod
60
56
  def initialize(mod)
61
- raise ArgumentError, "Tried to initialize a WrappedModule with a non-module #{mod.inspect}" unless ::Module === mod
57
+ unless mod.is_a?(Module)
58
+ raise ArgumentError, "Tried to initialize a WrappedModule with a " \
59
+ "non-module #{mod.inspect}"
60
+ end
62
61
 
63
62
  @wrapped = mod
64
63
  @memoized_candidates = []
@@ -85,7 +84,7 @@ class Pry
85
84
  # @return String
86
85
  def method_prefix
87
86
  if singleton_class?
88
- if Module === singleton_instance
87
+ if Module === singleton_instance # rubocop:disable Style/CaseEquality
89
88
  "#{WrappedModule.new(singleton_instance).nonblank_name}."
90
89
  else
91
90
  "self."
@@ -134,22 +133,30 @@ class Pry
134
133
  #
135
134
  # @return [Object]
136
135
  def singleton_instance
137
- raise ArgumentError, "tried to get instance of non singleton class" unless singleton_class?
136
+ unless singleton_class?
137
+ raise ArgumentError, "tried to get instance of non singleton class"
138
+ end
138
139
 
139
140
  if Helpers::Platform.jruby?
140
141
  wrapped.to_java.attached
141
142
  else
142
- @singleton_instance ||= ObjectSpace.each_object(wrapped).detect { |x| (class << x; self; end) == wrapped }
143
+ @singleton_instance ||= ObjectSpace.each_object(wrapped).detect do |x|
144
+ (class << x; self; end) == wrapped
145
+ end
143
146
  end
144
147
  end
145
148
 
146
149
  # Forward method invocations to the wrapped module
147
150
  def method_missing(method_name, *args, &block)
148
- wrapped.send(method_name, *args, &block)
151
+ if wrapped.respond_to?(method_name)
152
+ wrapped.send(method_name, *args, &block)
153
+ else
154
+ super
155
+ end
149
156
  end
150
157
 
151
- def respond_to?(method_name, include_all = false)
152
- super || wrapped.respond_to?(method_name, include_all)
158
+ def respond_to_missing?(method_name, include_private = false)
159
+ wrapped.respond_to?(method_name, include_private) || super
153
160
  end
154
161
 
155
162
  # Retrieve the source location of a module. Return value is in same
@@ -169,14 +176,14 @@ class Pry
169
176
  def file
170
177
  Array(source_location).first
171
178
  end
172
- alias_method :source_file, :file
179
+ alias source_file file
173
180
 
174
181
  # @return [Fixnum, nil] The associated line for the module (i.e
175
182
  # the primary candidate: highest ranked monkeypatch).
176
183
  def line
177
184
  Array(source_location).last
178
185
  end
179
- alias_method :source_line, :line
186
+ alias source_line line
180
187
 
181
188
  # Returns documentation for the module.
182
189
  # This documentation is for the primary candidate, if
@@ -247,10 +254,10 @@ class Pry
247
254
  # other rubies returns Enumerator
248
255
  def candidates
249
256
  enum = Enumerator.new do |y|
250
- (0...number_of_candidates).each do |num|
251
- y.yield candidate(num)
252
- end
253
- end
257
+ (0...number_of_candidates).each do |num|
258
+ y.yield candidate(num)
259
+ end
260
+ end
254
261
  Helpers::Platform.jruby_19? ? enum.to_a : enum
255
262
  end
256
263
 
@@ -268,11 +275,12 @@ class Pry
268
275
  def super(times = 1)
269
276
  return self if times.zero?
270
277
 
271
- if wrapped.is_a?(Class)
272
- sup = ancestors.select { |v| v.is_a?(Class) }[times]
273
- else
274
- sup = ancestors[times]
275
- end
278
+ sup =
279
+ if wrapped.is_a?(Class)
280
+ ancestors.select { |v| v.is_a?(Class) }[times]
281
+ else
282
+ ancestors[times]
283
+ end
276
284
 
277
285
  Pry::WrappedModule(sup) if sup
278
286
  end
@@ -287,9 +295,7 @@ class Pry
287
295
  # candidate of rank 0 will be returned, or a CommandError raised if
288
296
  # there are no candidates at all.
289
297
  def primary_candidate
290
- @primary_candidate ||= candidates.find { |c| c.file } ||
291
- # This will raise an exception if there is no candidate at all.
292
- candidate(0)
298
+ @primary_candidate ||= candidates.find(&:file) || candidate(0)
293
299
  end
294
300
 
295
301
  # @return [Array<Array<Pry::Method>>] The array of `Pry::Method` objects,
@@ -309,14 +315,16 @@ class Pry
309
315
  def all_source_locations_by_popularity
310
316
  return @all_source_locations_by_popularity if @all_source_locations_by_popularity
311
317
 
312
- ims = all_relevant_methods_for(wrapped)
313
- @all_source_locations_by_popularity = ims.group_by { |v| Array(v.source_location).first }.
314
- sort_by do |path, methods|
315
- expanded = File.expand_path(path)
316
- load_order = $LOADED_FEATURES.index { |file| expanded.end_with?(file) }
318
+ ims = all_relevant_methods_for(wrapped).group_by do |v|
319
+ Array(v.source_location).first
320
+ end
317
321
 
318
- [-methods.size, load_order || (1.0 / 0.0)]
319
- end
322
+ @all_source_locations_by_popularity = ims.sort_by do |path, methods|
323
+ expanded = File.expand_path(path)
324
+ load_order = $LOADED_FEATURES.index { |file| expanded.end_with?(file) }
325
+
326
+ [-methods.size, load_order || (1.0 / 0.0)]
327
+ end
320
328
  end
321
329
 
322
330
  # We only want methods that have a non-nil `source_location`. We also
@@ -324,8 +332,8 @@ class Pry
324
332
  #
325
333
  # @return [Array<Pry::Method>]
326
334
  def all_relevant_methods_for(mod)
327
- methods = all_methods_for(mod).select(&:source_location).
328
- reject { |x| method_defined_by_forwardable_module?(x) }
335
+ methods = all_methods_for(mod).select(&:source_location)
336
+ .reject { |x| method_defined_by_forwardable_module?(x) }
329
337
 
330
338
  return methods unless methods.empty?
331
339
 
@@ -349,7 +357,7 @@ class Pry
349
357
  return if safe_send(parent, :autoload?, name)
350
358
 
351
359
  child = safe_send(parent, :const_get, name)
352
- return unless Module === child
360
+ return unless child.is_a?(Module)
353
361
  return unless safe_send(child, :name) == "#{safe_send(parent, :name)}::#{name}"
354
362
 
355
363
  child
@@ -368,11 +376,12 @@ class Pry
368
376
  def lines_for_file(file)
369
377
  @lines_for_file ||= {}
370
378
 
371
- if file == Pry.eval_path
372
- @lines_for_file[file] ||= Pry.line_buffer.drop(1)
373
- else
374
- @lines_for_file[file] ||= File.readlines(file)
375
- end
379
+ @lines_for_file[file] ||=
380
+ if file == Pry.eval_path
381
+ Pry.line_buffer.drop(1)
382
+ else
383
+ File.readlines(file)
384
+ end
376
385
  end
377
386
  end
378
387
  end
@@ -1,4 +1,4 @@
1
- require 'pry/helpers/documentation_helpers'
1
+ # frozen_string_literal: true
2
2
 
3
3
  class Pry
4
4
  class WrappedModule
@@ -12,11 +12,11 @@ class Pry
12
12
 
13
13
  # @return [String] The file where the module definition is located.
14
14
  attr_reader :file
15
- alias_method :source_file, :file
15
+ alias source_file file
16
16
 
17
17
  # @return [Fixnum] The line where the module definition is located.
18
18
  attr_reader :line
19
- alias_method :source_line, :line
19
+ alias source_line line
20
20
 
21
21
  # Methods to delegate to associated `Pry::WrappedModule
22
22
  # instance`.
@@ -40,8 +40,12 @@ class Pry
40
40
 
41
41
  if number_of_candidates <= 0
42
42
  raise CommandError, "Cannot find a definition for #{name} module!"
43
- elsif rank > (number_of_candidates - 1)
44
- raise CommandError, "No such module candidate. Allowed candidates range is from 0 to #{number_of_candidates - 1}"
43
+ end
44
+
45
+ if rank > (number_of_candidates - 1)
46
+ raise CommandError,
47
+ "No such module candidate. Allowed candidates range is " \
48
+ "from 0 to #{number_of_candidates - 1}"
45
49
  end
46
50
 
47
51
  @source = @source_location = nil
@@ -56,7 +60,9 @@ class Pry
56
60
  return nil if file.nil?
57
61
  return @source if @source
58
62
 
59
- @source ||= strip_leading_whitespace(Pry::Code.from_file(file).expression_at(line, number_of_lines_in_first_chunk))
63
+ @source ||= strip_leading_whitespace(
64
+ Pry::Code.from_file(file).expression_at(line, number_of_lines_in_first_chunk)
65
+ )
60
66
  end
61
67
 
62
68
  # @raise [Pry::CommandError] If documentation cannot be found.
@@ -74,7 +80,7 @@ class Pry
74
80
  return @source_location if @source_location
75
81
 
76
82
  file, line = first_method_source_location
77
- return nil if !file.is_a?(String)
83
+ return nil unless file.is_a?(String)
78
84
 
79
85
  @source_location = [file, first_line_of_module_definition(file, line)]
80
86
  rescue Pry::RescuableException
@@ -97,7 +103,7 @@ class Pry
97
103
 
98
104
  def class_regexes
99
105
  mod_type_string = wrapped.class.to_s.downcase
100
- [/^\s*#{mod_type_string}\s+(?:(?:\w*)::)*?#{wrapped.name.split(/::/).last}/,
106
+ [/(^|=)\s*#{mod_type_string}\s+(?:(?:\w*)::)*?#{wrapped.name.split(/::/).last}/,
101
107
  /^\s*(::)?#{wrapped.name.split(/::/).last}\s*?=\s*?#{wrapped.class}/,
102
108
  /^\s*(::)?#{wrapped.name.split(/::/).last}\.(class|instance)_eval/]
103
109
  end
@@ -113,14 +119,15 @@ class Pry
113
119
  # @return [Array] The source location of the last method in this
114
120
  # candidate's module definition.
115
121
  def last_method_source_location
116
- @end_method_source_location ||= method_candidates[@rank].last.source_location
122
+ @last_method_source_location ||= method_candidates[@rank].last.source_location
117
123
  end
118
124
 
119
- # Return the number of lines between the start of the class definition
120
- # and the start of the last method. We use this value so we can
121
- # quickly grab these lines from the file (without having to
122
- # check each intervening line for validity, which is expensive) speeding up source extraction.
123
- # @return [Fixum] Number of lines.
125
+ # Return the number of lines between the start of the class definition and
126
+ # the start of the last method. We use this value so we can quickly grab
127
+ # these lines from the file (without having to check each intervening line
128
+ # for validity, which is expensive) speeding up source extraction.
129
+ #
130
+ # @return [Integer] number of lines.
124
131
  def number_of_lines_in_first_chunk
125
132
  end_method_line = last_method_source_location.last
126
133
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Mair (banisterfiend)
@@ -11,37 +11,40 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-11-04 00:00:00.000000000 Z
14
+ date: 2021-02-08 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
+ name: coderay
17
18
  requirement: !ruby/object:Gem::Requirement
18
19
  requirements:
19
20
  - - "~>"
20
21
  - !ruby/object:Gem::Version
21
- version: 1.1.0
22
- name: coderay
23
- prerelease: false
22
+ version: '1.1'
24
23
  type: :runtime
24
+ prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 1.1.0
29
+ version: '1.1'
30
30
  - !ruby/object:Gem::Dependency
31
+ name: method_source
31
32
  requirement: !ruby/object:Gem::Requirement
32
33
  requirements:
33
34
  - - "~>"
34
35
  - !ruby/object:Gem::Version
35
- version: 0.9.0
36
- name: method_source
37
- prerelease: false
36
+ version: '1.0'
38
37
  type: :runtime
38
+ prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: 0.9.0
44
- description: An IRB alternative and runtime developer console
43
+ version: '1.0'
44
+ description: |
45
+ Pry is a runtime developer console and IRB alternative with powerful
46
+ introspection capabilities. Pry aims to be more than an IRB replacement. It is
47
+ an attempt to bring REPL driven programming to the Ruby language.
45
48
  email:
46
49
  - jrmair@gmail.com
47
50
  - conrad.irwin@gmail.com
@@ -58,6 +61,8 @@ files:
58
61
  - bin/pry
59
62
  - lib/pry.rb
60
63
  - lib/pry/basic_object.rb
64
+ - lib/pry/block_command.rb
65
+ - lib/pry/class_command.rb
61
66
  - lib/pry/cli.rb
62
67
  - lib/pry/code.rb
63
68
  - lib/pry/code/code_file.rb
@@ -67,7 +72,7 @@ files:
67
72
  - lib/pry/color_printer.rb
68
73
  - lib/pry/command.rb
69
74
  - lib/pry/command_set.rb
70
- - lib/pry/commands.rb
75
+ - lib/pry/command_state.rb
71
76
  - lib/pry/commands/amend_line.rb
72
77
  - lib/pry/commands/bang.rb
73
78
  - lib/pry/commands/bang_pry.rb
@@ -82,7 +87,6 @@ files:
82
87
  - lib/pry/commands/clear_screen.rb
83
88
  - lib/pry/commands/code_collector.rb
84
89
  - lib/pry/commands/disable_pry.rb
85
- - lib/pry/commands/disabled_commands.rb
86
90
  - lib/pry/commands/easter_eggs.rb
87
91
  - lib/pry/commands/edit.rb
88
92
  - lib/pry/commands/edit/exception_patcher.rb
@@ -92,18 +96,9 @@ files:
92
96
  - lib/pry/commands/exit_program.rb
93
97
  - lib/pry/commands/find_method.rb
94
98
  - lib/pry/commands/fix_indent.rb
95
- - lib/pry/commands/gem_cd.rb
96
- - lib/pry/commands/gem_install.rb
97
- - lib/pry/commands/gem_list.rb
98
- - lib/pry/commands/gem_open.rb
99
- - lib/pry/commands/gem_readme.rb
100
- - lib/pry/commands/gem_search.rb
101
- - lib/pry/commands/gem_stats.rb
102
- - lib/pry/commands/gist.rb
103
99
  - lib/pry/commands/help.rb
104
100
  - lib/pry/commands/hist.rb
105
101
  - lib/pry/commands/import_set.rb
106
- - lib/pry/commands/install_command.rb
107
102
  - lib/pry/commands/jump_to.rb
108
103
  - lib/pry/commands/list_inspectors.rb
109
104
  - lib/pry/commands/ls.rb
@@ -143,12 +138,15 @@ files:
143
138
  - lib/pry/commands/whereami.rb
144
139
  - lib/pry/commands/wtf.rb
145
140
  - lib/pry/config.rb
146
- - lib/pry/config/behavior.rb
147
- - lib/pry/config/convenience.rb
148
- - lib/pry/config/default.rb
149
- - lib/pry/config/memoization.rb
141
+ - lib/pry/config/attributable.rb
142
+ - lib/pry/config/lazy_value.rb
143
+ - lib/pry/config/memoized_value.rb
144
+ - lib/pry/config/value.rb
145
+ - lib/pry/control_d_handler.rb
150
146
  - lib/pry/core_extensions.rb
151
147
  - lib/pry/editor.rb
148
+ - lib/pry/env.rb
149
+ - lib/pry/exception_handler.rb
152
150
  - lib/pry/exceptions.rb
153
151
  - lib/pry/forwardable.rb
154
152
  - lib/pry/helpers.rb
@@ -173,20 +171,18 @@ files:
173
171
  - lib/pry/object_path.rb
174
172
  - lib/pry/output.rb
175
173
  - lib/pry/pager.rb
176
- - lib/pry/platform.rb
177
- - lib/pry/plugins.rb
178
174
  - lib/pry/prompt.rb
179
175
  - lib/pry/pry_class.rb
180
176
  - lib/pry/pry_instance.rb
181
177
  - lib/pry/repl.rb
182
178
  - lib/pry/repl_file_loader.rb
183
179
  - lib/pry/ring.rb
184
- - lib/pry/rubygem.rb
185
180
  - lib/pry/slop.rb
186
181
  - lib/pry/slop/LICENSE
187
182
  - lib/pry/slop/commands.rb
188
183
  - lib/pry/slop/option.rb
189
- - lib/pry/terminal.rb
184
+ - lib/pry/syntax_highlighter.rb
185
+ - lib/pry/system_command_handler.rb
190
186
  - lib/pry/testable.rb
191
187
  - lib/pry/testable/evalable.rb
192
188
  - lib/pry/testable/mockable.rb
@@ -194,12 +190,16 @@ files:
194
190
  - lib/pry/testable/utility.rb
195
191
  - lib/pry/testable/variables.rb
196
192
  - lib/pry/version.rb
193
+ - lib/pry/warning.rb
197
194
  - lib/pry/wrapped_module.rb
198
195
  - lib/pry/wrapped_module/candidate.rb
199
- homepage: http://pryrepl.org
196
+ homepage: http://pry.github.io
200
197
  licenses:
201
198
  - MIT
202
- metadata: {}
199
+ metadata:
200
+ changelog_uri: https://github.com/pry/pry/blob/master/CHANGELOG.md
201
+ source_code_uri: https://github.com/pry/pry
202
+ bug_tracker_uri: https://github.com/pry/pry/issues
203
203
  post_install_message:
204
204
  rdoc_options: []
205
205
  require_paths:
@@ -215,9 +215,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
215
  - !ruby/object:Gem::Version
216
216
  version: '0'
217
217
  requirements: []
218
- rubyforge_project:
219
- rubygems_version: 2.7.6
218
+ rubygems_version: 3.1.2
220
219
  signing_key:
221
220
  specification_version: 4
222
- summary: An IRB alternative and runtime developer console
221
+ summary: A runtime developer console and IRB alternative with powerful introspection
222
+ capabilities.
223
223
  test_files: []