pry 0.10.2-i386-mingw32 → 1.0.0.pre1-i386-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. data/.document +2 -0
  2. data/.gitignore +16 -0
  3. data/.travis.yml +21 -0
  4. data/.yardopts +3 -0
  5. data/CHANGELOG +503 -0
  6. data/CONTRIBUTORS +55 -0
  7. data/Gemfile +9 -0
  8. data/Guardfile +62 -0
  9. data/LICENSE +2 -2
  10. data/{README.md → README.markdown} +31 -37
  11. data/Rakefile +144 -0
  12. data/TODO +117 -0
  13. data/lib/pry.rb +146 -33
  14. data/lib/pry/cli.rb +13 -35
  15. data/lib/pry/code.rb +63 -24
  16. data/lib/pry/code/loc.rb +2 -2
  17. data/lib/pry/code_object.rb +21 -40
  18. data/lib/pry/command.rb +6 -9
  19. data/lib/pry/command_set.rb +37 -80
  20. data/lib/pry/commands.rb +1 -1
  21. data/lib/pry/commands/amend_line.rb +1 -1
  22. data/lib/pry/commands/bang.rb +1 -1
  23. data/lib/pry/commands/cat.rb +2 -11
  24. data/lib/pry/commands/cat/abstract_formatter.rb +1 -1
  25. data/lib/pry/commands/cat/exception_formatter.rb +7 -6
  26. data/lib/pry/commands/cat/file_formatter.rb +32 -15
  27. data/lib/pry/commands/cat/input_expression_formatter.rb +1 -1
  28. data/lib/pry/commands/cd.rb +3 -14
  29. data/lib/pry/commands/code_collector.rb +4 -4
  30. data/lib/pry/commands/easter_eggs.rb +3 -3
  31. data/lib/pry/commands/edit.rb +22 -10
  32. data/lib/pry/commands/edit/exception_patcher.rb +1 -1
  33. data/lib/pry/commands/edit/file_and_line_locator.rb +2 -0
  34. data/lib/pry/{method/patcher.rb → commands/edit/method_patcher.rb} +37 -40
  35. data/lib/pry/commands/find_method.rb +22 -16
  36. data/lib/pry/commands/gem_install.rb +2 -5
  37. data/lib/pry/commands/gem_open.rb +1 -1
  38. data/lib/pry/commands/gist.rb +11 -10
  39. data/lib/pry/commands/help.rb +14 -14
  40. data/lib/pry/commands/hist.rb +5 -24
  41. data/lib/pry/commands/ls.rb +287 -56
  42. data/lib/pry/commands/play.rb +10 -44
  43. data/lib/pry/commands/pry_backtrace.rb +2 -1
  44. data/lib/pry/commands/raise_up.rb +1 -1
  45. data/lib/pry/commands/reload_code.rb +15 -31
  46. data/lib/pry/commands/ri.rb +3 -7
  47. data/lib/pry/commands/shell_command.rb +12 -17
  48. data/lib/pry/commands/shell_mode.rb +2 -2
  49. data/lib/pry/commands/show_doc.rb +0 -5
  50. data/lib/pry/commands/show_info.rb +10 -11
  51. data/lib/pry/commands/show_source.rb +3 -15
  52. data/lib/pry/commands/simple_prompt.rb +1 -1
  53. data/lib/pry/commands/toggle_color.rb +4 -8
  54. data/lib/pry/commands/whereami.rb +10 -18
  55. data/lib/pry/completion.rb +293 -0
  56. data/lib/pry/config.rb +233 -20
  57. data/lib/pry/core_extensions.rb +19 -29
  58. data/lib/pry/custom_completions.rb +6 -0
  59. data/lib/pry/editor.rb +103 -109
  60. data/lib/pry/helpers/base_helpers.rb +109 -22
  61. data/lib/pry/helpers/command_helpers.rb +8 -10
  62. data/lib/pry/helpers/documentation_helpers.rb +2 -1
  63. data/lib/pry/helpers/text.rb +5 -4
  64. data/lib/pry/history.rb +10 -21
  65. data/lib/pry/history_array.rb +0 -5
  66. data/lib/pry/hooks.rb +29 -9
  67. data/lib/pry/indent.rb +10 -5
  68. data/lib/pry/method.rb +86 -81
  69. data/lib/pry/method/weird_method_locator.rb +2 -4
  70. data/lib/pry/module_candidate.rb +14 -5
  71. data/lib/pry/pager.rb +48 -193
  72. data/lib/pry/plugins.rb +2 -2
  73. data/lib/pry/pry_class.rb +193 -104
  74. data/lib/pry/pry_instance.rb +154 -152
  75. data/lib/pry/rbx_method.rb +13 -0
  76. data/lib/pry/rbx_path.rb +1 -1
  77. data/lib/pry/repl.rb +14 -17
  78. data/lib/pry/repl_file_loader.rb +3 -8
  79. data/lib/pry/rubygem.rb +3 -3
  80. data/lib/pry/terminal.rb +3 -4
  81. data/lib/pry/test/helper.rb +11 -6
  82. data/lib/pry/version.rb +1 -1
  83. data/lib/pry/wrapped_module.rb +56 -49
  84. data/man/pry.1 +195 -0
  85. data/man/pry.1.html +204 -0
  86. data/man/pry.1.ronn +141 -0
  87. data/pry.gemspec +31 -0
  88. data/spec/Procfile +3 -0
  89. data/spec/cli_spec.rb +78 -0
  90. data/spec/code_object_spec.rb +277 -0
  91. data/spec/code_spec.rb +219 -0
  92. data/spec/command_helpers_spec.rb +29 -0
  93. data/spec/command_integration_spec.rb +562 -0
  94. data/spec/command_set_spec.rb +627 -0
  95. data/spec/command_spec.rb +821 -0
  96. data/spec/commands/amend_line_spec.rb +247 -0
  97. data/spec/commands/bang_spec.rb +18 -0
  98. data/spec/commands/cat_spec.rb +164 -0
  99. data/spec/commands/cd_spec.rb +250 -0
  100. data/spec/commands/disable_pry_spec.rb +25 -0
  101. data/spec/commands/edit_spec.rb +725 -0
  102. data/spec/commands/exit_all_spec.rb +27 -0
  103. data/spec/commands/exit_program_spec.rb +19 -0
  104. data/spec/commands/exit_spec.rb +28 -0
  105. data/spec/commands/find_method_spec.rb +70 -0
  106. data/spec/commands/gem_list_spec.rb +26 -0
  107. data/spec/commands/gist_spec.rb +79 -0
  108. data/spec/commands/help_spec.rb +56 -0
  109. data/spec/commands/hist_spec.rb +172 -0
  110. data/spec/commands/jump_to_spec.rb +15 -0
  111. data/spec/commands/ls_spec.rb +189 -0
  112. data/spec/commands/play_spec.rb +136 -0
  113. data/spec/commands/raise_up_spec.rb +56 -0
  114. data/spec/commands/save_file_spec.rb +177 -0
  115. data/spec/commands/show_doc_spec.rb +488 -0
  116. data/spec/commands/show_input_spec.rb +17 -0
  117. data/spec/commands/show_source_spec.rb +760 -0
  118. data/spec/commands/whereami_spec.rb +203 -0
  119. data/spec/completion_spec.rb +221 -0
  120. data/spec/control_d_handler_spec.rb +62 -0
  121. data/spec/documentation_helper_spec.rb +73 -0
  122. data/spec/editor_spec.rb +79 -0
  123. data/spec/exception_whitelist_spec.rb +21 -0
  124. data/spec/fixtures/candidate_helper1.rb +11 -0
  125. data/spec/fixtures/candidate_helper2.rb +8 -0
  126. data/spec/fixtures/example.erb +5 -0
  127. data/spec/fixtures/example_nesting.rb +33 -0
  128. data/spec/fixtures/show_source_doc_examples.rb +15 -0
  129. data/spec/fixtures/testlinkrc +2 -0
  130. data/spec/fixtures/testrc +2 -0
  131. data/spec/fixtures/testrcbad +2 -0
  132. data/spec/fixtures/whereami_helper.rb +6 -0
  133. data/spec/helper.rb +35 -0
  134. data/spec/helpers/bacon.rb +86 -0
  135. data/spec/helpers/mock_pry.rb +44 -0
  136. data/spec/helpers/repl_tester.rb +112 -0
  137. data/spec/helpers/table_spec.rb +105 -0
  138. data/spec/history_array_spec.rb +67 -0
  139. data/spec/hooks_spec.rb +522 -0
  140. data/spec/indent_spec.rb +301 -0
  141. data/spec/method_spec.rb +482 -0
  142. data/spec/prompt_spec.rb +61 -0
  143. data/spec/pry_defaults_spec.rb +420 -0
  144. data/spec/pry_history_spec.rb +69 -0
  145. data/spec/pry_output_spec.rb +95 -0
  146. data/spec/pry_repl_spec.rb +86 -0
  147. data/spec/pry_spec.rb +394 -0
  148. data/spec/pryrc_spec.rb +97 -0
  149. data/spec/run_command_spec.rb +25 -0
  150. data/spec/sticky_locals_spec.rb +147 -0
  151. data/spec/syntax_checking_spec.rb +81 -0
  152. data/spec/wrapped_module_spec.rb +261 -0
  153. data/wiki/Customizing-pry.md +397 -0
  154. data/wiki/Home.md +4 -0
  155. metadata +272 -61
  156. checksums.yaml +0 -7
  157. data/CHANGELOG.md +0 -714
  158. data/lib/pry/code/code_file.rb +0 -103
  159. data/lib/pry/color_printer.rb +0 -55
  160. data/lib/pry/commands/change_inspector.rb +0 -27
  161. data/lib/pry/commands/change_prompt.rb +0 -26
  162. data/lib/pry/commands/list_inspectors.rb +0 -35
  163. data/lib/pry/commands/list_prompts.rb +0 -35
  164. data/lib/pry/commands/ls/constants.rb +0 -47
  165. data/lib/pry/commands/ls/formatter.rb +0 -49
  166. data/lib/pry/commands/ls/globals.rb +0 -48
  167. data/lib/pry/commands/ls/grep.rb +0 -21
  168. data/lib/pry/commands/ls/instance_vars.rb +0 -39
  169. data/lib/pry/commands/ls/interrogatable.rb +0 -18
  170. data/lib/pry/commands/ls/jruby_hacks.rb +0 -49
  171. data/lib/pry/commands/ls/local_names.rb +0 -35
  172. data/lib/pry/commands/ls/local_vars.rb +0 -39
  173. data/lib/pry/commands/ls/ls_entity.rb +0 -70
  174. data/lib/pry/commands/ls/methods.rb +0 -57
  175. data/lib/pry/commands/ls/methods_helper.rb +0 -46
  176. data/lib/pry/commands/ls/self_methods.rb +0 -32
  177. data/lib/pry/commands/watch_expression.rb +0 -105
  178. data/lib/pry/commands/watch_expression/expression.rb +0 -38
  179. data/lib/pry/config/behavior.rb +0 -139
  180. data/lib/pry/config/convenience.rb +0 -25
  181. data/lib/pry/config/default.rb +0 -161
  182. data/lib/pry/exceptions.rb +0 -78
  183. data/lib/pry/input_completer.rb +0 -242
  184. data/lib/pry/input_lock.rb +0 -132
  185. data/lib/pry/inspector.rb +0 -27
  186. data/lib/pry/last_exception.rb +0 -61
  187. data/lib/pry/object_path.rb +0 -82
  188. data/lib/pry/output.rb +0 -50
  189. data/lib/pry/prompt.rb +0 -26
@@ -2,7 +2,7 @@ class Pry
2
2
  class Command::Play < Pry::ClassCommand
3
3
  match 'play'
4
4
  group 'Editing'
5
- description 'Playback a string variable, method, line, or file as input.'
5
+ description 'Playback a string variable or a method or a file as input.'
6
6
 
7
7
  banner <<-'BANNER'
8
8
  Usage: play [OPTIONS] [--help]
@@ -10,15 +10,10 @@ class Pry
10
10
  The play command enables you to replay code from files and methods as if they
11
11
  were entered directly in the Pry REPL.
12
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 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
13
+ play --lines 149..153
14
+ play -i 20 --lines 1..3
15
+ play Pry#repl --lines 1..-1
16
+ play Rakefile --lines 5
22
17
 
23
18
  https://github.com/pry/pry/wiki/User-Input#wiki-Play
24
19
  BANNER
@@ -26,52 +21,23 @@ class Pry
26
21
  def options(opt)
27
22
  CodeCollector.inject_options(opt)
28
23
 
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'
24
+ opt.on :open, 'Plays the select content except except' \
25
+ ' the last line. Useful for replaying methods and leaving the method definition "open". `amend-line`' \
26
+ ' can then be used to modify the method.'
36
27
  end
37
28
 
38
29
  def process
39
30
  @cc = CodeCollector.new(args, opts, _pry_)
40
31
 
41
32
  perform_play
42
- show_input
33
+ run "show-input" unless Pry::Code.complete_expression?(eval_string)
43
34
  end
44
35
 
45
36
  def perform_play
46
- eval_string << content_after_options
37
+ eval_string << (opts.present?(:open) ? restrict_to_lines(content, (0..-2)) : content)
47
38
  run "fix-indent"
48
39
  end
49
40
 
50
- def show_input
51
- if opts.present?(:print) or !Pry::Code.complete_expression?(eval_string)
52
- run "show-input"
53
- end
54
- end
55
-
56
-
57
- def content_after_options
58
- if opts.present?(:open)
59
- restrict_to_lines(content, (0..-2))
60
- elsif opts.present?(:expression)
61
- content_at_expression
62
- else
63
- content
64
- end
65
- end
66
-
67
- def content_at_expression
68
- code_object.expression_at(opts[:expression])
69
- end
70
-
71
- def code_object
72
- Pry::Code.new(content)
73
- end
74
-
75
41
  def should_use_default_file?
76
42
  !args.first && !opts.present?(:in) && !opts.present?(:out)
77
43
  end
@@ -17,7 +17,8 @@ class Pry
17
17
  BANNER
18
18
 
19
19
  def process
20
- _pry_.pager.page text.bold('Backtrace:') << "\n--\n" << _pry_.backtrace.join("\n")
20
+ stagger_output text.bold('Backtrace:') +
21
+ "\n--\n" + _pry_.backtrace.join("\n")
21
22
  end
22
23
  end
23
24
 
@@ -22,7 +22,7 @@ class Pry
22
22
  BANNER
23
23
 
24
24
  def process
25
- return _pry.pager.page help if captures[0] =~ /(-h|--help)\b/
25
+ return stagger_output help if captures[0] =~ /(-h|--help)\b/
26
26
  # Handle 'raise-up', 'raise-up "foo"', 'raise-up RuntimeError, 'farble' in a rubyesque manner
27
27
  target.eval("_pry_.raise_up#{captures[0]}")
28
28
  end
@@ -10,49 +10,33 @@ class Pry
10
10
  e.g reload-code MyClass#my_method #=> reload a method
11
11
  reload-code MyClass #=> reload a class
12
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
13
+ reload-code self #=> reload the 'current' object
14
+ reload-code #=> identical to reload-code self
15
15
  BANNER
16
16
 
17
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
24
- end
25
- end
26
-
27
- private
18
+ code_object = Pry::CodeObject.lookup(obj_name, _pry_)
28
19
 
29
- def current_file
30
- File.expand_path target.eval("__FILE__")
20
+ check_for_reloadability(code_object)
21
+ reload_code_object(code_object)
31
22
  end
32
23
 
33
- def reload_current_file
34
- if !File.exists?(current_file)
35
- raise CommandError, "Current file: #{current_file} cannot be found on disk!"
36
- end
24
+ private
37
25
 
38
- load current_file
39
- output.puts "The current file: #{current_file} was reloaded!"
26
+ def reload_code_object(code_object)
27
+ load code_object.source_file
28
+ output.puts "#{obj_name} was reloaded!"
40
29
  end
41
30
 
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!"
31
+ def obj_name
32
+ @obj_name ||= args.empty? ? "self" : args.join(" ")
47
33
  end
48
34
 
49
- def check_for_reloadability(code_object, identifier)
50
- if !code_object || !code_object.source_file
51
- raise CommandError, "Cannot locate #{identifier}!"
35
+ def check_for_reloadability(code_object)
36
+ if !code_object
37
+ raise CommandError, "Cannot locate #{obj_name}!"
52
38
  elsif !File.exists?(code_object.source_file)
53
- raise CommandError,
54
- "Cannot reload #{identifier} as it has no associated file on disk. " \
55
- "File found was: #{code_object.source_file}"
39
+ raise CommandError, "Cannot reload #{obj_name} as it has no associated file on disk. File found was: #{code_object.source_file}"
56
40
  end
57
41
  end
58
42
  end
@@ -23,18 +23,14 @@ class Pry
23
23
  subclass = Class.new(RDoc::RI::Driver) # the hard way.
24
24
 
25
25
  subclass.class_eval do
26
- def initialize(pager, opts)
27
- @pager = pager
28
- super opts
29
- end
30
26
  def page
31
27
  paging_text = StringIO.new
32
28
  yield paging_text
33
- @pager.page(paging_text.string)
29
+ Pry::Pager.page(paging_text.string)
34
30
  end
35
31
 
36
32
  def formatter(io)
37
- if @formatter_klass
33
+ if @formatter_klass then
38
34
  @formatter_klass.new
39
35
  else
40
36
  RDoc::Markup::ToAnsi.new
@@ -46,7 +42,7 @@ class Pry
46
42
  end
47
43
 
48
44
  # Spin-up an RI insance.
49
- ri = RDoc::RI::PryDriver.new _pry_.pager, :use_stdout => true, :interactive => false
45
+ ri = RDoc::RI::PryDriver.new :use_stdout => true, :interactive => false
50
46
 
51
47
  begin
52
48
  ri.display_names [spec] # Get the documentation (finally!)
@@ -16,32 +16,27 @@ class Pry
16
16
  BANNER
17
17
 
18
18
  def process(cmd)
19
- if cmd =~ /^cd\s*(.*)/i
20
- process_cd parse_destination($1)
19
+ if cmd =~ /^cd\s+(.+)/i
20
+ dest = $1
21
+ begin
22
+ Dir.chdir File.expand_path(dest)
23
+ rescue Errno::ENOENT
24
+ raise CommandError, "No such directory: #{dest}"
25
+ end
21
26
  else
22
27
  pass_block(cmd)
28
+
23
29
  if command_block
24
30
  command_block.call `#{cmd}`
25
31
  else
26
- _pry_.config.system.call(output, cmd, _pry_)
32
+ Pry.config.system.call(output, cmd, _pry_)
27
33
  end
28
34
  end
29
35
  end
30
36
 
31
- private
32
-
33
- def parse_destination(dest)
34
- return "~" if dest.empty?
35
- return dest unless dest == "-"
36
- state.old_pwd || raise(CommandError, "No prior directory available")
37
- end
38
-
39
- def process_cd(dest)
40
- state.old_pwd = Dir.pwd
41
- Dir.chdir File.expand_path(dest)
42
- rescue Errno::ENOENT
43
- raise CommandError, "No such directory: #{dest}"
44
- end
37
+ def complete(search)
38
+ super + Bond::Rc.files(search.split(" ").last || '')
39
+ end
45
40
  end
46
41
 
47
42
  Pry::Commands.add_command(Pry::Command::ShellCommand)
@@ -12,10 +12,10 @@ class Pry
12
12
  case _pry_.prompt
13
13
  when Pry::SHELL_PROMPT
14
14
  _pry_.pop_prompt
15
- _pry_.custom_completions = _pry_.config.file_completions
15
+ _pry_.custom_completions = Pry::DEFAULT_CUSTOM_COMPLETIONS
16
16
  else
17
17
  _pry_.push_prompt Pry::SHELL_PROMPT
18
- _pry_.custom_completions = _pry_.config.command_completions
18
+ _pry_.custom_completions = Pry::FILE_COMPLETIONS
19
19
  end
20
20
  end
21
21
  end
@@ -35,11 +35,6 @@ class Pry
35
35
  # command '--help' shouldn't use markup highlighting
36
36
  docs
37
37
  else
38
- if docs.empty?
39
- raise CommandError, "No docs found for: #{
40
- obj_name ? obj_name : 'current context'
41
- }"
42
- end
43
38
  process_comment_markup(docs)
44
39
  end
45
40
  end
@@ -3,12 +3,17 @@ class Pry
3
3
  extend Pry::Helpers::BaseHelpers
4
4
 
5
5
  command_options :shellwords => false, :interpolate => false
6
+ command_options :requires_gem => "ruby18_source_location" if mri_18?
7
+
8
+ def setup
9
+ require 'ruby18_source_location' if mri_18?
10
+ end
6
11
 
7
12
  def options(opt)
8
13
  opt.on :s, :super, "Select the 'super' method. Can be repeated to traverse the ancestors", :as => :count
9
14
  opt.on :l, "line-numbers", "Show line numbers"
10
15
  opt.on :b, "base-one", "Show line numbers but start numbering at 1 (useful for `amend-line` and `play` commands)"
11
- opt.on :a, :all, "Show all definitions and monkeypatches of the module/class"
16
+ opt.on :a, :all, "Show all definitions and monkeypatches of the module/class"
12
17
  end
13
18
 
14
19
  def process
@@ -27,7 +32,7 @@ class Pry
27
32
  end
28
33
 
29
34
  set_file_and_dir_locals(code_object.source_file)
30
- _pry_.pager.page result
35
+ stagger_output result
31
36
  end
32
37
 
33
38
  # This method checks whether the `code_object` is a WrappedModule,
@@ -58,7 +63,7 @@ class Pry
58
63
  end
59
64
 
60
65
  def content_and_header_for_code_object(code_object)
61
- header(code_object) << content_for(code_object)
66
+ header(code_object) + content_for(code_object)
62
67
  end
63
68
 
64
69
  def content_and_headers_for_all_module_candidates(mod)
@@ -90,7 +95,7 @@ class Pry
90
95
  h << code_object_header(code_object, line_num)
91
96
  h << "\n#{Pry::Helpers::Text.bold('Number of lines:')} " <<
92
97
  "#{content_for(code_object).lines.count}\n\n"
93
- h << Helpers::Text.bold('** Warning:') << " Cannot find code for #{@original_code_object.nonblank_name}. Showing superclass #{code_object.nonblank_name} instead. **\n\n" if @used_super
98
+ h << Helpers::Text.bold('** Warning:') + " Cannot find code for #{@original_code_object.nonblank_name}. Showing superclass #{code_object.nonblank_name} instead. **\n\n" if @used_super
94
99
  h
95
100
  end
96
101
 
@@ -121,12 +126,6 @@ class Pry
121
126
  h << "@ line #{line_num}:\n"
122
127
  h << text.bold(code_object.module? ? "Module" : "Class")
123
128
  h << " #{text.bold('name:')} #{code_object.nonblank_name}"
124
-
125
- if code_object.number_of_candidates > 1
126
- h << (text.bold("\nNumber of monkeypatches: ") << code_object.number_of_candidates.to_s)
127
- h << ". Use the `-a` option to display all available monkeypatches"
128
- end
129
- h
130
129
  end
131
130
 
132
131
  def method_sections(code_object)
@@ -150,7 +149,7 @@ class Pry
150
149
  end
151
150
 
152
151
  def obj_name
153
- @obj_name ||= args.empty? ? nil : args.join(' ')
152
+ @obj_name ||= args.empty? ? nil : args.join(" ")
154
153
  end
155
154
 
156
155
  def use_line_numbers?
@@ -18,29 +18,17 @@ class Pry
18
18
  show-source Pry#rep # source for Pry#rep method
19
19
  show-source Pry # for Pry class
20
20
  show-source Pry -a # for all Pry class definitions (all monkey patches)
21
- show-source Pry.foo -e # for class of the return value of expression `Pry.foo`
22
21
  show-source Pry --super # for superclass of Pry (Object class)
23
22
 
24
23
  https://github.com/pry/pry/wiki/Source-browsing#wiki-Show_method
25
24
  BANNER
26
25
 
27
- def options(opt)
28
- opt.on :e, :eval, "evaluate the command's argument as a ruby expression and show the class its return value"
29
- super(opt)
30
- end
31
-
32
- def process
33
- if opts.present?(:e)
34
- obj = target.eval(args.first)
35
- self.args = Array.new(1) { Module === obj ? obj.name : obj.class.name }
36
- end
37
- super
38
- end
39
-
40
26
  # The source for code_object prepared for display.
41
27
  def content_for(code_object)
28
+ cannot_locate_source_error if !code_object.source
29
+
42
30
  Code.new(code_object.source, start_line_for(code_object)).
43
- with_line_numbers(use_line_numbers?).highlighted
31
+ with_line_numbers(use_line_numbers?).to_s
44
32
  end
45
33
  end
46
34
 
@@ -1,7 +1,7 @@
1
1
  class Pry
2
2
  class Command::SimplePrompt < Pry::ClassCommand
3
3
  match 'simple-prompt'
4
- group 'prompts'
4
+ group 'Misc'
5
5
  description 'Toggle the simple prompt.'
6
6
 
7
7
  banner <<-'BANNER'
@@ -11,14 +11,10 @@ class Pry
11
11
  BANNER
12
12
 
13
13
  def process
14
- _pry_.color = color_toggle
15
- output.puts "Syntax highlighting #{_pry_.color ? "on" : "off"}"
14
+ Pry.color = !Pry.color
15
+ output.puts "Syntax highlighting #{Pry.color ? "on" : "off"}"
16
16
  end
17
-
18
- def color_toggle
19
- !_pry_.color
20
- end
21
-
22
- Pry::Commands.add_command(self)
23
17
  end
18
+
19
+ Pry::Commands.add_command(Pry::Command::ToggleColor)
24
20
  end
@@ -88,10 +88,10 @@ class Pry
88
88
 
89
89
  set_file_and_dir_locals(@file)
90
90
 
91
- out = "\n#{text.bold('From:')} #{location}:\n\n" <<
92
- code.with_line_numbers(use_line_numbers?).with_marker(marker).highlighted << "\n"
91
+ out = "\n#{text.bold('From:')} #{location}:\n\n" +
92
+ code.with_line_numbers(use_line_numbers?).with_marker(marker).to_s + "\n"
93
93
 
94
- _pry_.pager.page out
94
+ stagger_output(out)
95
95
  end
96
96
 
97
97
  private
@@ -109,7 +109,7 @@ class Pry
109
109
  end
110
110
 
111
111
  def top_level?
112
- target_self == Pry.main
112
+ target_self == TOPLEVEL_BINDING.eval("self")
113
113
  end
114
114
 
115
115
  def handle_internal_binding
@@ -144,21 +144,14 @@ class Pry
144
144
  end
145
145
  end
146
146
 
147
- # This either returns the `target_self`
148
- # or it returns the class of `target_self` if `target_self` is not a class.
149
- # @return [Pry::WrappedModule]
150
- def target_class
151
- target_self.is_a?(Module) ? Pry::WrappedModule(target_self) :
152
- Pry::WrappedModule(target_self.class)
153
- end
154
-
155
147
  def class_code
156
148
  return @class_code if @class_code
157
149
 
158
- mod = @method ? Pry::WrappedModule(@method.owner) : target_class
159
-
160
- idx = mod.candidates.find_index { |v| expand_path(v.source_file) == @file }
161
- @class_code = idx && Pry::Code.from_module(mod, idx)
150
+ if valid_method?
151
+ mod = Pry::WrappedModule(@method.owner)
152
+ idx = mod.candidates.find_index { |v| expand_path(v.source_file) == @file }
153
+ @class_code = idx && Pry::Code.from_module(mod, idx)
154
+ end
162
155
  end
163
156
 
164
157
  def valid_method?
@@ -178,7 +171,7 @@ class Pry
178
171
 
179
172
  def window_size
180
173
  if args.empty?
181
- _pry_.config.default_window_size
174
+ Pry.config.default_window_size
182
175
  else
183
176
  args.first.to_i
184
177
  end
@@ -186,5 +179,4 @@ class Pry
186
179
  end
187
180
 
188
181
  Pry::Commands.add_command(Pry::Command::Whereami)
189
- Pry::Commands.alias_command '@', 'whereami'
190
182
  end