pry 0.12.2-java → 0.13.0-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 (158) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +110 -1
  3. data/LICENSE +1 -1
  4. data/README.md +331 -269
  5. data/bin/pry +5 -0
  6. data/lib/pry.rb +133 -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 +40 -31
  11. data/lib/pry/code.rb +39 -27
  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 +24 -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 +81 -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 +109 -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 +311 -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 +41 -42
  118. data/lib/pry/plugins.rb +25 -8
  119. data/lib/pry/prompt.rb +123 -54
  120. data/lib/pry/pry_class.rb +61 -98
  121. data/lib/pry/pry_instance.rb +217 -215
  122. data/lib/pry/repl.rb +18 -22
  123. data/lib/pry/repl_file_loader.rb +27 -21
  124. data/lib/pry/ring.rb +11 -6
  125. data/lib/pry/slop.rb +574 -563
  126. data/lib/pry/slop/commands.rb +164 -169
  127. data/lib/pry/slop/option.rb +172 -168
  128. data/lib/pry/syntax_highlighter.rb +26 -0
  129. data/lib/pry/system_command_handler.rb +17 -0
  130. data/lib/pry/testable.rb +59 -61
  131. data/lib/pry/testable/evalable.rb +21 -12
  132. data/lib/pry/testable/mockable.rb +18 -10
  133. data/lib/pry/testable/pry_tester.rb +71 -56
  134. data/lib/pry/testable/utility.rb +29 -21
  135. data/lib/pry/testable/variables.rb +49 -43
  136. data/lib/pry/version.rb +3 -1
  137. data/lib/pry/warning.rb +27 -0
  138. data/lib/pry/wrapped_module.rb +51 -42
  139. data/lib/pry/wrapped_module/candidate.rb +21 -14
  140. metadata +31 -30
  141. data/lib/pry/commands.rb +0 -6
  142. data/lib/pry/commands/disabled_commands.rb +0 -2
  143. data/lib/pry/commands/gem_cd.rb +0 -26
  144. data/lib/pry/commands/gem_install.rb +0 -32
  145. data/lib/pry/commands/gem_list.rb +0 -33
  146. data/lib/pry/commands/gem_open.rb +0 -29
  147. data/lib/pry/commands/gem_readme.rb +0 -25
  148. data/lib/pry/commands/gem_search.rb +0 -40
  149. data/lib/pry/commands/gem_stats.rb +0 -83
  150. data/lib/pry/commands/gist.rb +0 -102
  151. data/lib/pry/commands/install_command.rb +0 -54
  152. data/lib/pry/config/behavior.rb +0 -255
  153. data/lib/pry/config/convenience.rb +0 -28
  154. data/lib/pry/config/default.rb +0 -159
  155. data/lib/pry/config/memoization.rb +0 -48
  156. data/lib/pry/platform.rb +0 -91
  157. data/lib/pry/rubygem.rb +0 -84
  158. data/lib/pry/terminal.rb +0 -91
@@ -1,102 +1,113 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
- class Command::Play < Pry::ClassCommand
3
- match 'play'
4
- group 'Editing'
5
- description 'Playback a string variable, method, line, or file as input.'
6
-
7
- banner <<-'BANNER'
8
- Usage: play [OPTIONS] [--help]
9
-
10
- The play command enables you to replay code from files and methods as if they
11
- were entered directly in the Pry REPL.
12
-
13
- play --lines 149..153 # assumes current context
14
- play -i 20 --lines 1..3 # assumes lines of the input expression at 20
15
- play -o 4 # the output of an expression at 4
16
- play Pry#repl -l 1..-1 # play the contents of Pry#repl method
17
- play -e 2 # play from specified line until end of valid expression
18
- play hello.rb # play a file
19
- play Rakefile -l 5 # play line 5 of a file
20
- play -d hi # play documentation of hi method
21
- play hi --open # play hi method and leave it open
22
-
23
- https://github.com/pry/pry/wiki/User-Input#wiki-Play
24
- BANNER
25
-
26
- def options(opt)
27
- CodeCollector.inject_options(opt)
28
-
29
- opt.on :open, 'Plays the selected content except the last line. Useful' \
30
- ' for replaying methods and leaving the method definition' \
31
- ' "open". `amend-line` can then be used to' \
32
- ' modify the method.'
33
-
34
- opt.on :e, :expression=, 'Executes until end of valid expression', as: Integer
35
- opt.on :p, :print, 'Prints executed code'
36
- end
4
+ class Command
5
+ class Play < Pry::ClassCommand
6
+ match 'play'
7
+ group 'Editing'
8
+ description 'Playback a string variable, method, line, or file as input.'
9
+
10
+ banner <<-'BANNER'
11
+ Usage: play [OPTIONS] [--help]
12
+
13
+ The play command enables you to replay code from files and methods as if they
14
+ were entered directly in the Pry REPL.
15
+
16
+ play --lines 149..153 # assumes current context
17
+ play -i 20 --lines 1..3 # assumes lines of the input expression at 20
18
+ play -o 4 # the output of an expression at 4
19
+ play Pry#repl -l 1..-1 # play the contents of Pry#repl method
20
+ play -e 2 # play from specified line until end of valid expression
21
+ play hello.rb # play a file
22
+ play Rakefile -l 5 # play line 5 of a file
23
+ play -d hi # play documentation of hi method
24
+ play hi --open # play hi method and leave it open
25
+
26
+ https://github.com/pry/pry/wiki/User-Input#wiki-Play
27
+ BANNER
28
+
29
+ def options(opt)
30
+ CodeCollector.inject_options(opt)
31
+
32
+ opt.on :open, 'Plays the selected content except the last line. Useful' \
33
+ ' for replaying methods and leaving the method definition' \
34
+ ' "open". `amend-line` can then be used to' \
35
+ ' modify the method.'
36
+
37
+ opt.on :e, :expression=, 'Executes until end of valid expression', as: Integer
38
+ opt.on :p, :print, 'Prints executed code'
39
+ end
37
40
 
38
- def process
39
- @cc = CodeCollector.new(args, opts, _pry_)
41
+ def process
42
+ @cc = CodeCollector.new(args, opts, pry_instance)
40
43
 
41
- perform_play
42
- show_input
43
- end
44
+ perform_play
45
+ show_input
46
+ end
44
47
 
45
- def perform_play
46
- eval_string << content_after_options
47
- run "fix-indent"
48
- end
48
+ def perform_play
49
+ eval_string << content_after_options
50
+ run "fix-indent"
51
+ end
52
+
53
+ def show_input
54
+ return unless opts.present?(:print)
55
+ return unless Pry::Code.complete_expression?(eval_string)
49
56
 
50
- def show_input
51
- if opts.present?(:print) or !Pry::Code.complete_expression?(eval_string)
52
- run "show-input"
57
+ run 'show-input'
53
58
  end
54
- end
55
59
 
56
- def content_after_options
57
- if opts.present?(:open)
58
- restrict_to_lines(content, (0..-2))
59
- elsif opts.present?(:expression)
60
- content_at_expression
61
- else
62
- content
60
+ def content_after_options
61
+ if opts.present?(:open)
62
+ restrict_to_lines(content, (0..-2))
63
+ elsif opts.present?(:expression)
64
+ content_at_expression
65
+ else
66
+ content
67
+ end
63
68
  end
64
- end
65
69
 
66
- def content_at_expression
67
- code_object.expression_at(opts[:expression])
68
- end
70
+ def content_at_expression
71
+ code_object.expression_at(opts[:expression])
72
+ end
69
73
 
70
- def code_object
71
- Pry::Code.new(content)
72
- end
74
+ def code_object
75
+ Pry::Code.new(content)
76
+ end
73
77
 
74
- def should_use_default_file?
75
- !args.first && !opts.present?(:in) && !opts.present?(:out)
76
- end
78
+ def should_use_default_file?
79
+ !args.first && !opts.present?(:in) && !opts.present?(:out)
80
+ end
77
81
 
78
- def content
79
- if should_use_default_file?
80
- file_content
81
- else
82
- @cc.content
82
+ def content
83
+ if should_use_default_file?
84
+ file_content
85
+ else
86
+ @cc.content
87
+ end
83
88
  end
84
- end
85
89
 
86
- # The file to play from when no code object is specified.
87
- # e.g `play --lines 4..10`
88
- def default_file
89
- target.eval("__FILE__") && File.expand_path(target.eval("__FILE__"))
90
- end
90
+ # The file to play from when no code object is specified.
91
+ # e.g `play --lines 4..10`
92
+ def default_file
93
+ file =
94
+ if target.respond_to?(:source_location)
95
+ target.source_location.first
96
+ else
97
+ target.eval("__FILE__")
98
+ end
99
+ file && File.expand_path(file)
100
+ end
101
+
102
+ def file_content
103
+ if !default_file || !File.exist?(default_file)
104
+ raise CommandError, "File does not exist! File was: #{default_file.inspect}"
105
+ end
91
106
 
92
- def file_content
93
- if default_file && File.exist?(default_file)
94
107
  @cc.restrict_to_lines(File.read(default_file), @cc.line_range)
95
- else
96
- raise CommandError, "File does not exist! File was: #{default_file.inspect}"
97
108
  end
98
109
  end
99
- end
100
110
 
101
- Pry::Commands.add_command(Pry::Command::Play)
111
+ Pry::Commands.add_command(Pry::Command::Play)
112
+ end
102
113
  end
@@ -1,25 +1,32 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
- class Command::PryBacktrace < Pry::ClassCommand
3
- match 'pry-backtrace'
4
- group 'Context'
5
- description 'Show the backtrace for the Pry session.'
4
+ class Command
5
+ class PryBacktrace < Pry::ClassCommand
6
+ match 'pry-backtrace'
7
+ group 'Context'
8
+ description 'Show the backtrace for the Pry session.'
6
9
 
7
- banner <<-BANNER
8
- Usage: pry-backtrace [OPTIONS] [--help]
10
+ banner <<-BANNER
11
+ Usage: pry-backtrace [OPTIONS] [--help]
9
12
 
10
- Show the backtrace for the position in the code where Pry was started. This can
11
- be used to infer the behavior of the program immediately before it entered Pry,
12
- just like the backtrace property of an exception.
13
+ Show the backtrace for the position in the code where Pry was started. This can
14
+ be used to infer the behavior of the program immediately before it entered Pry,
15
+ just like the backtrace property of an exception.
13
16
 
14
- NOTE: if you are looking for the backtrace of the most recent exception raised,
15
- just type: `_ex_.backtrace` instead.
16
- See: https://github.com/pry/pry/wiki/Special-Locals
17
- BANNER
17
+ NOTE: if you are looking for the backtrace of the most recent exception raised,
18
+ just type: `_ex_.backtrace` instead.
19
+ See: https://github.com/pry/pry/wiki/Special-Locals
20
+ BANNER
18
21
 
19
- def process
20
- _pry_.pager.page bold('Backtrace:') << "\n--\n" << _pry_.backtrace.join("\n")
22
+ def process
23
+ text = bold('Backtrace:')
24
+ text << "\n--\n"
25
+ text << pry_instance.backtrace.join("\n")
26
+ pry_instance.pager.page(text)
27
+ end
21
28
  end
22
- end
23
29
 
24
- Pry::Commands.add_command(Pry::Command::PryBacktrace)
30
+ Pry::Commands.add_command(Pry::Command::PryBacktrace)
31
+ end
25
32
  end
@@ -1,17 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
- class Command::Version < Pry::ClassCommand
3
- match 'pry-version'
4
- group 'Misc'
5
- description 'Show Pry version.'
4
+ class Command
5
+ class Version < Pry::ClassCommand
6
+ match 'pry-version'
7
+ group 'Misc'
8
+ description 'Show Pry version.'
6
9
 
7
- banner <<-'BANNER'
8
- Show Pry version.
9
- BANNER
10
+ banner <<-'BANNER'
11
+ Show Pry version.
12
+ BANNER
10
13
 
11
- def process
12
- output.puts "Pry version: #{Pry::VERSION} on Ruby #{RUBY_VERSION}."
14
+ def process
15
+ output.puts "Pry version: #{Pry::VERSION} on Ruby #{RUBY_VERSION}."
16
+ end
13
17
  end
14
- end
15
18
 
16
- Pry::Commands.add_command(Pry::Command::Version)
19
+ Pry::Commands.add_command(Pry::Command::Version)
20
+ end
17
21
  end
@@ -1,33 +1,38 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
4
  # N.B. using a regular expresion here so that "raise-up 'foo'" does the right thing.
3
- class Command::RaiseUp < Pry::ClassCommand
4
- match(/raise-up(!?\b.*)/)
5
- group 'Context'
6
- description 'Raise an exception out of the current pry instance.'
7
- command_options listing: 'raise-up'
5
+ class Command
6
+ class RaiseUp < Pry::ClassCommand
7
+ match(/raise-up(!?\b.*)/)
8
+ group 'Context'
9
+ description 'Raise an exception out of the current pry instance.'
10
+ command_options listing: 'raise-up'
8
11
 
9
- banner <<-BANNER
10
- Raise up, like exit, allows you to quit pry. Instead of returning a value
11
- however, it raises an exception. If you don't provide the exception to be
12
- raised, it will use the most recent exception (in pry `_ex_`).
12
+ banner <<-BANNER
13
+ Raise up, like exit, allows you to quit pry. Instead of returning a value
14
+ however, it raises an exception. If you don't provide the exception to be
15
+ raised, it will use the most recent exception (in pry `_ex_`).
13
16
 
14
- When called as raise-up! (with an exclamation mark), this command raises the
15
- exception through any nested prys you have created by "cd"ing into objects.
17
+ When called as raise-up! (with an exclamation mark), this command raises the
18
+ exception through any nested prys you have created by "cd"ing into objects.
16
19
 
17
- raise-up "get-me-out-of-here"
20
+ raise-up "get-me-out-of-here"
18
21
 
19
- # This is equivalent to the command above.
20
- raise "get-me-out-of-here"
21
- raise-up
22
- BANNER
22
+ # This is equivalent to the command above.
23
+ raise "get-me-out-of-here"
24
+ raise-up
25
+ BANNER
23
26
 
24
- def process
25
- return _pry.pager.page help if captures[0] =~ /(-h|--help)\b/
27
+ def process
28
+ return _pry.pager.page help if captures[0] =~ /(-h|--help)\b/
26
29
 
27
- # Handle 'raise-up', 'raise-up "foo"', 'raise-up RuntimeError, 'farble' in a rubyesque manner
28
- target.eval("_pry_.raise_up#{captures[0]}")
30
+ # Handle 'raise-up', 'raise-up "foo"', 'raise-up RuntimeError, 'farble'
31
+ # in a rubyesque manner
32
+ target.eval("pry_instance.raise_up#{captures[0]}")
33
+ end
29
34
  end
30
- end
31
35
 
32
- Pry::Commands.add_command(Pry::Command::RaiseUp)
36
+ Pry::Commands.add_command(Pry::Command::RaiseUp)
37
+ end
33
38
  end
@@ -1,62 +1,74 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
- class Command::ReloadCode < Pry::ClassCommand
3
- match 'reload-code'
4
- group 'Misc'
5
- description 'Reload the source file that contains the specified code object.'
6
-
7
- banner <<-'BANNER'
8
- Reload the source file that contains the specified code object.
9
-
10
- e.g reload-code MyClass#my_method #=> reload a method
11
- reload-code MyClass #=> reload a class
12
- reload-code my-command #=> reload a pry command
13
- reload-code self #=> reload the current object
14
- reload-code #=> reload the current file or object
15
- BANNER
16
-
17
- def process
18
- if !args.empty?
19
- reload_object(args.join(" "))
20
- elsif internal_binding?(target)
21
- reload_object("self")
22
- else
23
- reload_current_file
4
+ class Command
5
+ class ReloadCode < Pry::ClassCommand
6
+ match 'reload-code'
7
+ group 'Misc'
8
+ description 'Reload the source file that contains the specified code object.'
9
+
10
+ banner <<-'BANNER'
11
+ Reload the source file that contains the specified code object.
12
+
13
+ e.g reload-code MyClass#my_method #=> reload a method
14
+ reload-code MyClass #=> reload a class
15
+ reload-code my-command #=> reload a pry command
16
+ reload-code self #=> reload the current object
17
+ reload-code #=> reload the current file or object
18
+ BANNER
19
+
20
+ def process
21
+ if !args.empty?
22
+ reload_object(args.join(" "))
23
+ elsif internal_binding?(target)
24
+ reload_object("self")
25
+ else
26
+ reload_current_file
27
+ end
24
28
  end
25
- end
26
29
 
27
- private
30
+ private
28
31
 
29
- def current_file
30
- File.expand_path target.eval("__FILE__")
31
- end
32
+ def current_file
33
+ file =
34
+ if target.respond_to?(:source_location)
35
+ target.source_location.first
36
+ else
37
+ target.eval("__FILE__")
38
+ end
39
+ File.expand_path file
40
+ end
32
41
 
33
- def reload_current_file
34
- if !File.exist?(current_file)
35
- raise CommandError, "Current file: #{current_file} cannot be found on disk!"
42
+ def reload_current_file
43
+ unless File.exist?(current_file)
44
+ raise CommandError, "Current file: #{current_file} cannot be found on disk!"
45
+ end
46
+
47
+ load current_file
48
+ output.puts "The current file: #{current_file} was reloaded!"
36
49
  end
37
50
 
38
- load current_file
39
- output.puts "The current file: #{current_file} was reloaded!"
40
- end
51
+ def reload_object(identifier)
52
+ code_object = Pry::CodeObject.lookup(identifier, pry_instance)
53
+ check_for_reloadability(code_object, identifier)
54
+ load code_object.source_file
55
+ output.puts "#{identifier} was reloaded!"
56
+ end
41
57
 
42
- def reload_object(identifier)
43
- code_object = Pry::CodeObject.lookup(identifier, _pry_)
44
- check_for_reloadability(code_object, identifier)
45
- load code_object.source_file
46
- output.puts "#{identifier} was reloaded!"
47
- end
58
+ def check_for_reloadability(code_object, identifier)
59
+ if !code_object || !code_object.source_file
60
+ raise CommandError, "Cannot locate #{identifier}!"
61
+ end
62
+
63
+ return if File.exist?(code_object.source_file)
48
64
 
49
- def check_for_reloadability(code_object, identifier)
50
- if !code_object || !code_object.source_file
51
- raise CommandError, "Cannot locate #{identifier}!"
52
- elsif !File.exist?(code_object.source_file)
53
65
  raise CommandError,
54
- "Cannot reload #{identifier} as it has no associated file on disk. " \
55
- "File found was: #{code_object.source_file}"
66
+ "Cannot reload #{identifier} as it has no associated file on disk. " \
67
+ "File found was: #{code_object.source_file}"
56
68
  end
57
69
  end
58
- end
59
70
 
60
- Pry::Commands.add_command(Pry::Command::ReloadCode)
61
- Pry::Commands.alias_command 'reload-method', 'reload-code'
71
+ Pry::Commands.add_command(Pry::Command::ReloadCode)
72
+ Pry::Commands.alias_command 'reload-method', 'reload-code'
73
+ end
62
74
  end