pry 0.12.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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: []