pry 0.14.1-java → 0.15.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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +68 -2
  3. data/README.md +47 -30
  4. data/lib/pry/basic_object.rb +1 -1
  5. data/lib/pry/class_command.rb +2 -2
  6. data/lib/pry/cli.rb +6 -2
  7. data/lib/pry/code.rb +0 -8
  8. data/lib/pry/code_object.rb +2 -2
  9. data/lib/pry/command.rb +1 -1
  10. data/lib/pry/command_set.rb +2 -2
  11. data/lib/pry/command_state.rb +11 -6
  12. data/lib/pry/commands/amend_line.rb +1 -1
  13. data/lib/pry/commands/cd.rb +2 -0
  14. data/lib/pry/commands/edit.rb +2 -0
  15. data/lib/pry/commands/find_method.rb +1 -1
  16. data/lib/pry/commands/ls/config.rb +51 -0
  17. data/lib/pry/commands/ls/constants.rb +2 -2
  18. data/lib/pry/commands/ls.rb +0 -21
  19. data/lib/pry/commands/raise_up.rb +1 -1
  20. data/lib/pry/commands/ri.rb +1 -1
  21. data/lib/pry/commands/shell_command.rb +1 -1
  22. data/lib/pry/commands/shell_mode.rb +1 -0
  23. data/lib/pry/commands/watch_expression/expression.rb +1 -1
  24. data/lib/pry/commands/watch_expression.rb +4 -6
  25. data/lib/pry/config.rb +26 -29
  26. data/lib/pry/control_d_handler.rb +1 -1
  27. data/lib/pry/core_extensions.rb +1 -1
  28. data/lib/pry/editor.rb +3 -1
  29. data/lib/pry/exception_handler.rb +7 -2
  30. data/lib/pry/helpers/command_helpers.rb +1 -1
  31. data/lib/pry/helpers/platform.rb +1 -6
  32. data/lib/pry/helpers/text.rb +5 -5
  33. data/lib/pry/indent.rb +13 -11
  34. data/lib/pry/input/simple_stdio.rb +13 -0
  35. data/lib/pry/input_completer.rb +2 -2
  36. data/lib/pry/method/patcher.rb +2 -2
  37. data/lib/pry/method/weird_method_locator.rb +2 -2
  38. data/lib/pry/method.rb +4 -4
  39. data/lib/pry/pry_class.rb +17 -2
  40. data/lib/pry/pry_instance.rb +7 -45
  41. data/lib/pry/repl.rb +66 -4
  42. data/lib/pry/ring.rb +2 -2
  43. data/lib/pry/slop.rb +1 -1
  44. data/lib/pry/syntax_highlighter.rb +1 -1
  45. data/lib/pry/version.rb +1 -1
  46. data/lib/pry/warning.rb +3 -10
  47. data/lib/pry/wrapped_module/candidate.rb +9 -8
  48. data/lib/pry/wrapped_module.rb +3 -8
  49. data/lib/pry.rb +3 -0
  50. metadata +6 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b94b22afbb9872ae2ccf5be114149d011f5bcce2c3ec2293097461c0a30335a
4
- data.tar.gz: d36e350eb1e8ff448e088dab7233f6c9f28849f6ae94d3eed0b9ad4768ade770
3
+ metadata.gz: fded5aa78eecbc292b4b27840b420f7fd1b723b76541e5854b27b45cb583e6ba
4
+ data.tar.gz: 86ed82a2dc55f826d38ae2a20f22929dbbf11b7f5d79dcfc0740a20f6779ca01
5
5
  SHA512:
6
- metadata.gz: a62b50b18d4384677ab01c64fe4cc4eaf230ec033e012dc397c2757cece9ccdad68071a58fbc2e6c84047f945e67eac6875214c4a40bff22b10e7637fafc3da1
7
- data.tar.gz: 1596aef2f91334198c2705f79fa6c93e324cd89071a1f6c04c60c471a5c168864c8a3bb991c1d362b5fd5e040782c4a680e7b1eb3cbf4324258c11379d8019f0
6
+ metadata.gz: 9f84b40177824ce98dbe858ab440608fa55f1060f97b76f860727e109704d7842f67ad6ef7caa53965d0b3564286cb2516dfcaed3e7b6465105080916bc22d71
7
+ data.tar.gz: b03f296f12ed93fb92e7b6f7243f250cc4ada6c08b70e52a5b8df81c6707aa9c3124d60b03e0e922b5626b543c59059c7300e626858b59706140df7cd19d9fb8
data/CHANGELOG.md CHANGED
@@ -1,4 +1,70 @@
1
- ### master
1
+ ### [v0.15.0][v0.15.0] (November 15, 2024)
2
+
3
+ #### Features
4
+
5
+ * Added support for Reline
6
+ ([#2298](https://github.com/pry/pry/pull/2298))
7
+ * Added support for Ruby 3.3
8
+ ([#2295](https://github.com/pry/pry/pull/2295))
9
+ * Added Pry::Input::SimpleStdio for dumb terminals when Reline is in use
10
+ ([#2304](https://github.com/pry/pry/pull/2304))
11
+ * Remove OpenStruct usage
12
+ ([#2307](https://github.com/pry/pry/pull/2307))
13
+ ([#2309](https://github.com/pry/pry/pull/2309))
14
+ * Disable coloring of output when NO_COLOR is set.
15
+ ([#2323])(https://github.com/pry/pry/pull/2323))
16
+ * Add `pry --no-multiline` flag to keep single line prompt.
17
+ ([#2327](https://github.com/pry/pry/pull/2327))
18
+
19
+ #### Bug Fixes
20
+
21
+ * Fix typos on docs and and comments
22
+ ([#2300](https://github.com/pry/pry/pull/2300))
23
+ ([#2301](https://github.com/pry/pry/pull/2301))
24
+ * Fix 'calling clear method' on user code when defined in pry context.
25
+ ([#2291](https://github.com/pry/pry/pull/2291))
26
+ * Fix arguments WatchExpression#add_expression
27
+ ([#2278](https://github.com/pry/pry/pull/2278))
28
+
29
+ ### Breaking changes
30
+
31
+ * Remove support for deprecated `Pry.config.prompt = [proc {}, proc {}]`
32
+ Use Pry::Prompt API instead
33
+ ([#2308](https://github.com/pry/pry/pull/2308))
34
+ * Remove deprecated `Pry.config.exception_whitelist`.
35
+ Use `Pry.config.unrescued_exceptions` instead.
36
+ ([#2326](https://github.com/pry/pry/pull/2326))
37
+
38
+ ### [v0.14.2][v0.14.2] (January 9, 2023)
39
+
40
+ #### Features
41
+
42
+ * Configure `code` as a supported editor on Pry::Editor
43
+ ([#2236](https://github.com/pry/pry/pull/2236))
44
+ * Added support for Ruby 3.2
45
+ ([#2263](https://github.com/pry/pry/pull/2263))
46
+ * Added support for Ruby 3.1
47
+ ([#2228](https://github.com/pry/pry/pull/2228))
48
+
49
+ #### Bug fixes
50
+
51
+ * Short circuit eval regexes in finding module definition
52
+ ([#2253](https://github.com/pry/pry/pull/2253))
53
+ * Revert "Escape non-printing characters"
54
+ ([#2235](https://github.com/pry/pry/pull/2235))
55
+ * Fixed bug where WeirdMethodLocator would fail to find the source of a method breaking whereami
56
+ ([#2244](https://github.com/pry/pry/pull/2244))
57
+ * Fixed bug where pry would throw an FrozenError when dealing with incomplete tokens
58
+ ([#2136](https://github.com/pry/pry/pull/2136))
59
+ * Restore --no-history CLI flag functionality
60
+ ([#2196](https://github.com/pry/pry/pull/2196))
61
+ * Fixed bug where reading from the `_out_` sticky local variable could return
62
+ wrong results ([#2201](https://github.com/pry/pry/pull/2201))
63
+
64
+ #### Breaking Changes
65
+
66
+ * Remove support for Ruby 1.9 and JRuby < 9.0
67
+ ([#2239](https://github.com/pry/pry/pull/2239))
2
68
 
3
69
  ### [v0.14.1][v0.14.1] (April 12, 2021)
4
70
 
@@ -946,7 +1012,7 @@ complete CHANGELOG:
946
1012
  * _pry_ now passed as 3rd parameter to :before_session hook
947
1013
  * ls colors now configurable via Pry.config.ls.local_var_color = :bright_red etc
948
1014
  * ls separator configurable via, e.g Pry.config.ls.separator = " "
949
- * Pry.view_clip() now only calls inspect on a few immediates, otherwise uses the #<> syntax, which has been truncated further to exclude teh mem address, again related to #245
1015
+ * Pry.view_clip() now only calls inspect on a few immediates, otherwise uses the #<> syntax, which has been truncated further to exclude the mem address, again related to #245
950
1016
 
951
1017
  ### 0.9.3 (2011/7/27)
952
1018
  * cat --ex (cats 5 lines above and below line in file where exception was raised)
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Pry
2
2
  ===
3
3
 
4
- [![Circle Build Status](https://circleci.com/gh/pry/pry.svg?style=shield)](https://circleci.com/gh/pry/pry)
4
+ [![Pry Build Status](https://github.com/pry/pry/workflows/pry/badge.svg)](https://github.com/pry/pry/actions)
5
5
  [![Code Climate](https://codeclimate.com/github/pry/pry.svg)](https://codeclimate.com/github/pry/pry)
6
6
  [![Gem Version](https://badge.fury.io/rb/pry.svg)](https://badge.fury.io/rb/pry)
7
7
  [![Documentation Status](https://inch-ci.org/github/pry/pry.svg?branch=master)](https://inch-ci.org/github/pry/pry)
@@ -21,7 +21,7 @@ Pry
21
21
 
22
22
  **Links:**
23
23
 
24
- * https://pry.github.com/
24
+ * https://pry.github.io/
25
25
  * [YARD API documentation](https://www.rubydoc.info/gems/pry)
26
26
  * [Wiki](https://github.com/pry/pry/wiki)
27
27
 
@@ -38,7 +38,6 @@ Table of Contents
38
38
  * [Command Shell Integration](#command-shell-integration)
39
39
  * [Code Browsing](#code-browsing)
40
40
  * [Documentation Browsing](#documentation-browsing)
41
- * [Gist integration](#gist-integration)
42
41
  * [Edit methods](#edit-methods)
43
42
  * [Live Help System](#live-help-system)
44
43
  * [Use Pry as your Rails Console](#use-pry-as-your-rails-console)
@@ -82,7 +81,7 @@ Installation
82
81
  ### Bundler
83
82
 
84
83
  ```ruby
85
- gem 'pry', '~> 0.13.1'
84
+ gem 'pry', '~> 0.15.0'
86
85
  ```
87
86
 
88
87
  ### Manual
@@ -208,7 +207,7 @@ hello world!
208
207
  pry(main)> def a.goodbye
209
208
  pry(main)* puts "goodbye cruel world!"
210
209
  pry(main)* end
211
- => nil
210
+ => :goodbye
212
211
  pry(main)> a.goodbye
213
212
  goodbye cruel world!
214
213
  => nil
@@ -266,23 +265,26 @@ syntax and also simply the name of a method that's in scope. You can optionally
266
265
  pass the `-l` option to `show-source` to include line numbers in the output.
267
266
 
268
267
  In the following example we will enter the `Pry` class, list the instance
269
- methods beginning with 're' and display the source code for the `rep` method:
268
+ methods beginning with 'se' and display the source code for the `set_last_result` method:
270
269
 
271
270
  ```ruby
272
271
  pry(main)> cd Pry
273
- pry(Pry):1> ls -M --grep re
274
- Pry#methods: re readline refresh rep repl repl_epilogue repl_prologue retrieve_line
275
- pry(Pry):1> show-source rep -l
276
-
277
- From: /home/john/ruby/projects/pry/lib/pry/pry_instance.rb:143
272
+ pry(Pry):1> ls -M --grep se
273
+ Pry#methods: raise_up raise_up! raise_up_common reset_eval_string select_prompt set_last_result
274
+ pry(Pry):1> show-source set_last_result -l
275
+
276
+ From: /home/john/ruby/projects/pry/lib/pry/pry_instance.rb:405:
277
+ Owner: Pry
278
+ Visibility: public
279
+ Signature: set_last_result(result, code=?)
278
280
  Number of lines: 6
279
281
 
280
- 143: def rep(target=TOPLEVEL_BINDING)
281
- 144: target = Pry.binding_for(target)
282
- 145: result = re(target)
283
- 146:
284
- 147: show_result(result) if should_print?
285
- 148: end
282
+ 405: def set_last_result(result, code = "")
283
+ 406: @last_result_is_exception = false
284
+ 407: @output_ring << result
285
+ 408:
286
+ 409: self.last_result = result unless code =~ /\A\s*\z/
287
+ 410: end
286
288
  ```
287
289
 
288
290
  Note that we can also view C methods (from Ruby Core) using the
@@ -317,7 +319,7 @@ rb_ary_select(VALUE ary)
317
319
  One use-case for Pry is to explore a program at run-time by `cd`-ing in and out
318
320
  of objects and viewing and invoking methods. In the course of exploring it may
319
321
  be useful to read the documentation for a specific method that you come
320
- across. Like `show-source` the `show-doc` command supports two syntaxes - the
322
+ across. `show-source` command supports two syntaxes - the
321
323
  normal `ri` syntax as well as accepting the name of any method that is currently
322
324
  in scope.
323
325
 
@@ -339,14 +341,26 @@ In our example we will enter the `Gem` class and view the documentation for the
339
341
 
340
342
  ```ruby
341
343
  pry(main)> cd Gem
342
- pry(Gem):1> show-doc try_activate
344
+ pry(Gem):1> show-source try_activate -d
343
345
 
344
- From: /Users/john/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems.rb:201
345
- Number of lines: 3
346
+ From: /Users/john/rbenv/versions/2.7.1/lib/ruby/2.7.0/rubygems.rb:194:
347
+ Owner: #<Class:Gem>
348
+ Visibility: public
349
+ Signature: try_activate(path)
350
+ Number of lines: 28
346
351
 
347
352
  Try to activate a gem containing path. Returns true if
348
353
  activation succeeded or wasn't needed because it was already
349
354
  activated. Returns false if it can't find the path in a gem.
355
+
356
+ def self.try_activate(path)
357
+ # finds the _latest_ version... regardless of loaded specs and their deps
358
+ # if another gem had a requirement that would mean we shouldn't
359
+ # activate the latest version, then either it would already be activated
360
+ # or if it was ambiguous (and thus unresolved) the code in our custom
361
+ # require will try to activate the more specific version.
362
+
363
+ spec = Gem::Specification.find_by_path path
350
364
  pry(Gem):1>
351
365
  ```
352
366
 
@@ -399,18 +413,21 @@ description if the `--help` option is available.
399
413
 
400
414
  ### Use Pry as your Rails Console
401
415
 
402
- The recommended way to use Pry as your Rails console is to add [the `pry-rails`
403
- gem](https://github.com/rweng/pry-rails) to your Gemfile. This replaces the
404
- default console with Pry, in addition to loading the Rails console helpers and
405
- adding some useful Rails-specific commands.
406
-
407
- If you don't want to change your Gemfile, you can still run a Pry console in
408
- your app's environment using Pry's `-r` flag:
416
+ You can run a Pry console in your app's environment using Pry's `-r` flag:
409
417
 
410
418
  ```sh
411
419
  pry -r ./config/environment
412
420
  ```
413
421
 
422
+ Or start the rails console (`bin/rails console`) and then type `pry`.
423
+
424
+ It's also possible to use Pry as your Rails console by adding [the pry-rails
425
+ gem](https://github.com/pry/pry-rails) to your Gemfile. This replaces the
426
+ default console with Pry, in addition to loading the Rails console helpers and
427
+ adding some useful Rails-specific commands.
428
+
429
+ **Note that `pry-rails` is not currently maintained.**
430
+
414
431
  Also check out the
415
432
  [wiki](https://github.com/pry/pry/wiki/Setting-up-Rails-or-Heroku-to-use-Pry)
416
433
  for more information about integrating Pry with Rails.
@@ -427,8 +444,8 @@ putting the line `Pry.color = false` in your `pryrc` file.
427
444
  Supported Rubies
428
445
  ----------------
429
446
 
430
- * CRuby >= 1.9.3
431
- * JRuby >= 1.7
447
+ * CRuby >= 2.0.0
448
+ * JRuby >= 9.0
432
449
 
433
450
  Contact
434
451
  -------
@@ -2,7 +2,7 @@
2
2
 
3
3
  class Pry
4
4
  class BasicObject < BasicObject
5
- [:Kernel, :File, :Dir, :LoadError, :ENV, :Pry].each do |constant|
5
+ %i[Kernel File Dir LoadError ENV Pry].each do |constant|
6
6
  const_set constant, ::Object.const_get(constant)
7
7
  end
8
8
  include Kernel
@@ -137,7 +137,7 @@ class Pry
137
137
  # end
138
138
  # end
139
139
  #
140
- # @example Define the invokation block anywhere you want
140
+ # @example Define the invocation block anywhere you want
141
141
  # def subcommands(cmd)
142
142
  # cmd.command :download do |opt|
143
143
  # description 'Downloads a content from a server'
@@ -172,7 +172,7 @@ class Pry
172
172
 
173
173
  # The actual body of your command should go here.
174
174
  #
175
- # The `opts` mehod can be called to get the options that Pry::Slop has passed,
175
+ # The `opts` method can be called to get the options that Pry::Slop has passed,
176
176
  # and `args` gives the remaining, unparsed arguments.
177
177
  #
178
178
  # The return value of this method is discarded unless the command was
data/lib/pry/cli.rb CHANGED
@@ -122,7 +122,7 @@ Pry::CLI.add_options do
122
122
  banner(
123
123
  "Usage: pry [OPTIONS]\n" \
124
124
  "Start a Pry session.\n" \
125
- "See http://pryrepl.org/ for more information.\n" \
125
+ "See http://pry.github.io/ for more information.\n" \
126
126
  "Copyright (c) 2016 John Mair (banisterfiend)" \
127
127
  )
128
128
 
@@ -138,13 +138,17 @@ Pry::CLI.add_options do
138
138
  end
139
139
 
140
140
  on "no-history", "Disable history loading" do
141
- Pry.config.history.should_load = false
141
+ Pry.config.history_load = false
142
142
  end
143
143
 
144
144
  on "no-color", "Disable syntax highlighting for session" do
145
145
  Pry.config.color = false
146
146
  end
147
147
 
148
+ on "no-multiline", "Disables multiline (defaults to true with Reline)" do
149
+ Pry.config.multiline = false
150
+ end
151
+
148
152
  on :f, "Suppress loading of pryrc" do
149
153
  Pry.config.should_load_rc = false
150
154
  Pry.config.should_load_local_rc = false
data/lib/pry/code.rb CHANGED
@@ -346,14 +346,6 @@ class Pry
346
346
  ''.respond_to?(method_name, include_private) || super
347
347
  end
348
348
 
349
- if RUBY_VERSION.start_with?('1.9')
350
- # @todo This is needed for Ruby 1.9 support where `lines` return an
351
- # Enumerator. Newer Rubies return an Array
352
- def lines
353
- super.to_a
354
- end
355
- end
356
-
357
349
  protected
358
350
 
359
351
  # An abstraction of the `dup.instance_eval` pattern used throughout this
@@ -11,7 +11,7 @@ class Pry
11
11
  # object the user wants (applying precedence rules in doing so -- i.e methods
12
12
  # get precedence over commands with the same name) and 2. Returning
13
13
  # the appropriate object. If the user fails to provide a string
14
- # identifer for the object (i.e they pass in `nil` or "") then the
14
+ # identifier for the object (i.e they pass in `nil` or "") then the
15
15
  # object looked up will be the 'current method' or 'current class'
16
16
  # associated with the Binding.
17
17
  #
@@ -97,7 +97,7 @@ class Pry
97
97
  nil
98
98
  end
99
99
 
100
- # when no paramter is given (i.e CodeObject.lookup(nil)), then we
100
+ # when no parameter is given (i.e CodeObject.lookup(nil)), then we
101
101
  # lookup the 'current object' from the binding.
102
102
  def empty_lookup
103
103
  return nil if str && !str.empty?
data/lib/pry/command.rb CHANGED
@@ -200,7 +200,7 @@ class Pry
200
200
  end
201
201
 
202
202
  def state
203
- Pry::CommandState.default.state_for(match)
203
+ Pry::CommandState.default.state_for(self)
204
204
  end
205
205
  end
206
206
 
@@ -145,7 +145,7 @@ class Pry
145
145
  # Imports all the commands from one or more sets.
146
146
  # @param [Array<CommandSet>] sets Command sets, all of the commands of which
147
147
  # will be imported.
148
- # @return [Pry::CommandSet] Returns the reciever (a command set).
148
+ # @return [Pry::CommandSet] Returns the receiver (a command set).
149
149
  def import(*sets)
150
150
  sets.each do |set|
151
151
  @commands.merge! set.to_hash
@@ -157,7 +157,7 @@ class Pry
157
157
  # Imports some commands from a set
158
158
  # @param [CommandSet] set Set to import commands from
159
159
  # @param [Array<String>] matches Commands to import
160
- # @return [Pry::CommandSet] Returns the reciever (a command set).
160
+ # @return [Pry::CommandSet] Returns the receiver (a command set).
161
161
  def import_from(set, *matches)
162
162
  helper_module.send :include, set.helper_module
163
163
  matches.each do |match|
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ostruct'
4
-
5
3
  class Pry
6
4
  # CommandState is a data structure to hold per-command state.
7
5
  #
@@ -20,12 +18,19 @@ class Pry
20
18
  @command_state = {}
21
19
  end
22
20
 
23
- def state_for(command_name)
24
- @command_state[command_name] ||= OpenStruct.new
21
+ def state_for(command_class)
22
+ @command_state[command_class] ||= command_struct(command_class)
23
+ end
24
+
25
+ def reset(command_class)
26
+ @command_state[command_class] = command_struct(command_class)
25
27
  end
26
28
 
27
- def reset(command_name)
28
- @command_state[command_name] = OpenStruct.new
29
+ private
30
+
31
+ def command_struct(command_class)
32
+ Struct.new(:command, *command_class.command_options[:state])
33
+ .new(command: command_class)
29
34
  end
30
35
  end
31
36
  end
@@ -76,7 +76,7 @@ class Pry
76
76
 
77
77
  # Takes two numbers that are 1-indexed, and returns a range (or
78
78
  # number) that is 0-indexed. 1-indexed means the first element is
79
- # indentified by 1 rather than by 0 (as is the case for Ruby arrays).
79
+ # identified by 1 rather than by 0 (as is the case for Ruby arrays).
80
80
  # @param [Fixnum] start_line_number One-indexed number.
81
81
  # @param [Fixnum] end_line_number One-indexed number.
82
82
  # @return [Range] The zero-indexed range.
@@ -22,6 +22,8 @@ class Pry
22
22
  https://github.com/pry/pry/wiki/State-navigation#wiki-Changing_scope
23
23
  BANNER
24
24
 
25
+ command_options state: %i[old_stack]
26
+
25
27
  def process
26
28
  state.old_stack ||= []
27
29
 
@@ -22,6 +22,8 @@ class Pry
22
22
  https://github.com/pry/pry/wiki/Editor-integration#wiki-Edit_command
23
23
  BANNER
24
24
 
25
+ command_options state: %i[dynamical_ex_file]
26
+
25
27
  def options(opt)
26
28
  opt.on :e, :ex, "Open the file that raised the most recent exception " \
27
29
  "(_ex_.file)",
@@ -128,7 +128,7 @@ class Pry
128
128
  next if klass.autoload?(name)
129
129
 
130
130
  begin
131
- const = klass.const_get(name)
131
+ const = Pry::Method.singleton_class_of(klass.const_get(name))
132
132
  rescue RescuableException # rubocop:disable Lint/HandleExceptions
133
133
  # constant loading is an inexact science at the best of times,
134
134
  # this often happens when a constant was .autoload? but someone
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Pry
4
+ class Command
5
+ class Ls < Pry::ClassCommand
6
+ class Config
7
+ attr_accessor :heading_color,
8
+ :public_method_color,
9
+ :private_method_color,
10
+ :protected_method_color,
11
+ :method_missing_color,
12
+ :local_var_color,
13
+ :pry_var_color, # e.g. _, pry_instance, _file_
14
+ :instance_var_color, # e.g. @foo
15
+ :class_var_color, # e.g. @@foo
16
+ :global_var_color, # e.g. $CODERAY_DEBUG, $foo
17
+ :builtin_global_color, # e.g. $stdin, $-w, $PID
18
+ :pseudo_global_color, # e.g. $~, $1..$9, $LAST_MATCH_INFO
19
+ :constant_color, # e.g. VERSION, ARGF
20
+ :class_constant_color, # e.g. Object, Kernel
21
+ :exception_constant_color, # e.g. Exception, RuntimeError
22
+ :unloaded_constant_color, # Constant that is still in .autoload?
23
+ :separator,
24
+ :ceiling
25
+
26
+ def self.default
27
+ config = new
28
+ config.heading_color = :bright_blue
29
+ config.public_method_color = :default
30
+ config.private_method_color = :blue
31
+ config.protected_method_color = :blue
32
+ config.method_missing_color = :bright_red
33
+ config.local_var_color = :yellow
34
+ config.pry_var_color = :default
35
+ config.instance_var_color = :blue
36
+ config.class_var_color = :bright_blue
37
+ config.global_var_color = :default
38
+ config.builtin_global_color = :cyan
39
+ config.pseudo_global_color = :cyan
40
+ config.constant_color = :default
41
+ config.class_constant_color = :blue
42
+ config.exception_constant_color = :magenta
43
+ config.unloaded_constant_color = :yellow
44
+ config.separator = " "
45
+ config.ceiling = [Object, Module, Class]
46
+ config
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -4,8 +4,8 @@ class Pry
4
4
  class Command
5
5
  class Ls < Pry::ClassCommand
6
6
  class Constants < Pry::Command::Ls::Formatter
7
- DEPRECATED_CONSTANTS = [
8
- :Data, :Fixnum, :Bignum, :TimeoutError, :NIL, :FALSE, :TRUE
7
+ DEPRECATED_CONSTANTS = %i[
8
+ Data Fixnum Bignum TimeoutError NIL FALSE TRUE
9
9
  ].tap do |constants|
10
10
  constants << :JavaPackageModuleTemplate if Helpers::Platform.jruby?
11
11
  end
@@ -3,27 +3,6 @@
3
3
  class Pry
4
4
  class Command
5
5
  class Ls < Pry::ClassCommand
6
- DEFAULT_OPTIONS = {
7
- heading_color: :bright_blue,
8
- public_method_color: :default,
9
- private_method_color: :blue,
10
- protected_method_color: :blue,
11
- method_missing_color: :bright_red,
12
- local_var_color: :yellow,
13
- pry_var_color: :default, # e.g. _, pry_instance, _file_
14
- instance_var_color: :blue, # e.g. @foo
15
- class_var_color: :bright_blue, # e.g. @@foo
16
- global_var_color: :default, # e.g. $CODERAY_DEBUG, $eventmachine_library
17
- builtin_global_color: :cyan, # e.g. $stdin, $-w, $PID
18
- pseudo_global_color: :cyan, # e.g. $~, $1..$9, $LAST_MATCH_INFO
19
- constant_color: :default, # e.g. VERSION, ARGF
20
- class_constant_color: :blue, # e.g. Object, Kernel
21
- exception_constant_color: :magenta, # e.g. Exception, RuntimeError
22
- unloaded_constant_color: :yellow, # Any constant that is still in .autoload? state
23
- separator: " ",
24
- ceiling: [Object, Module, Class]
25
- }.freeze
26
-
27
6
  match 'ls'
28
7
  group 'Context'
29
8
  description 'Show the list of vars and methods in the current scope.'
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Pry
4
- # N.B. using a regular expresion here so that "raise-up 'foo'" does the right thing.
4
+ # N.B. using a regular expression here so that "raise-up 'foo'" does the right thing.
5
5
  class Command
6
6
  class RaiseUp < Pry::ClassCommand
7
7
  match(/raise-up(!?\b.*)/)
@@ -57,7 +57,7 @@ class Pry
57
57
  RDoc::RI.const_set :PryDriver, subclass # hook it up!
58
58
  end
59
59
 
60
- # Spin-up an RI insance.
60
+ # Spin-up an RI instance.
61
61
  ri = RDoc::RI::PryDriver.new(
62
62
  pry_instance.pager, use_stdout: true, interactive: false
63
63
  )
@@ -7,7 +7,7 @@ class Pry
7
7
  group 'Input and Output'
8
8
  description "All text following a '.' is forwarded to the shell."
9
9
  command_options listing: '.<shell command>', use_prefix: false,
10
- takes_block: true
10
+ takes_block: true, state: %i[old_pwd]
11
11
 
12
12
  banner <<-'BANNER'
13
13
  Usage: .COMMAND_NAME
@@ -6,6 +6,7 @@ class Pry
6
6
  match 'shell-mode'
7
7
  group 'Input and Output'
8
8
  description 'Toggle shell mode. Bring in pwd prompt and file completion.'
9
+ command_options state: %i[disabled prev_prompt]
9
10
 
10
11
  banner <<-'BANNER'
11
12
  Toggle shell mode. Bring in pwd prompt and file completion.
@@ -23,7 +23,7 @@ class Pry
23
23
 
24
24
  # Has the value of the expression changed?
25
25
  #
26
- # We use the pretty-printed string represenation to detect differences
26
+ # We use the pretty-printed string representation to detect differences
27
27
  # as this avoids problems with dup (causes too many differences) and ==
28
28
  # (causes too few)
29
29
  def changed?
@@ -7,7 +7,7 @@ class Pry
7
7
  group 'Context'
8
8
  description 'Watch the value of an expression and print a notification ' \
9
9
  'whenever it changes.'
10
- command_options use_prefix: false
10
+ command_options use_prefix: false, state: %i[watch_expressions]
11
11
 
12
12
  banner <<-'BANNER'
13
13
  Usage: watch [EXPRESSION]
@@ -46,7 +46,7 @@ class Pry
46
46
  list
47
47
  else
48
48
  add_hook
49
- add_expression(args)
49
+ add_expression
50
50
  end
51
51
  end
52
52
 
@@ -88,15 +88,13 @@ class Pry
88
88
  end
89
89
  end
90
90
 
91
- # TODO: fix arguments.
92
- # https://github.com/pry/pry/commit/b031df2f2f5850ee6e9018f33d35f3485a9b0423
93
- def add_expression(_arguments)
91
+ def add_expression
94
92
  expressions << Expression.new(pry_instance, target, arg_string)
95
93
  output.puts "Watching #{Code.new(arg_string).highlighted}"
96
94
  end
97
95
 
98
96
  def add_hook
99
- hook = [:after_eval, :watch_expression]
97
+ hook = %i[after_eval watch_expression]
100
98
  return if pry_instance.hooks.hook_exists?(*hook)
101
99
 
102
100
  pry_instance.hooks.add_hook(*hook) do |_, pry_instance|