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,23 +1,27 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
- class Command::ImportSet < Pry::ClassCommand
3
- match 'import-set'
4
- group 'Commands'
5
- # TODO: Provide a better description with examples and a general conception
6
- # of this command.
7
- description 'Import a Pry command set.'
4
+ class Command
5
+ class ImportSet < Pry::ClassCommand
6
+ match 'import-set'
7
+ group 'Commands'
8
+ # TODO: Provide a better description with examples and a general conception
9
+ # of this command.
10
+ description 'Import a Pry command set.'
8
11
 
9
- banner <<-'BANNER'
10
- Import a Pry command set.
11
- BANNER
12
+ banner <<-'BANNER'
13
+ Import a Pry command set.
14
+ BANNER
12
15
 
13
- # TODO: resolve unused parameter.
14
- def process(_command_set_name)
15
- raise CommandError, "Provide a command set name" if command_set.nil?
16
+ # TODO: resolve unused parameter.
17
+ def process(_command_set_name)
18
+ raise CommandError, "Provide a command set name" if command_set.nil?
16
19
 
17
- set = target.eval(arg_string)
18
- _pry_.commands.import set
20
+ set = target.eval(arg_string)
21
+ pry_instance.commands.import set
22
+ end
19
23
  end
20
- end
21
24
 
22
- Pry::Commands.add_command(Pry::Command::ImportSet)
25
+ Pry::Commands.add_command(Pry::Command::ImportSet)
26
+ end
23
27
  end
@@ -1,29 +1,33 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
- class Command::JumpTo < Pry::ClassCommand
3
- match 'jump-to'
4
- group 'Navigating Pry'
5
- description 'Jump to a binding further up the stack.'
4
+ class Command
5
+ class JumpTo < Pry::ClassCommand
6
+ match 'jump-to'
7
+ group 'Navigating Pry'
8
+ description 'Jump to a binding further up the stack.'
6
9
 
7
- banner <<-'BANNER'
8
- Jump to a binding further up the stack, popping all bindings below.
9
- BANNER
10
+ banner <<-'BANNER'
11
+ Jump to a binding further up the stack, popping all bindings below.
12
+ BANNER
10
13
 
11
- def process(break_level)
12
- break_level = break_level.to_i
13
- nesting_level = _pry_.binding_stack.size - 1
14
- max_nest_level = nesting_level - 1
14
+ def process(break_level)
15
+ break_level = break_level.to_i
16
+ nesting_level = pry_instance.binding_stack.size - 1
17
+ max_nest_level = nesting_level - 1
15
18
 
16
- case break_level
17
- when nesting_level
18
- output.puts "Already at nesting level #{nesting_level}"
19
- when 0..max_nest_level
20
- _pry_.binding_stack = _pry_.binding_stack[0..break_level]
21
- else
22
- output.puts "Invalid nest level. Must be between 0 and " \
23
- "#{max_nest_level}. Got #{break_level}."
19
+ case break_level
20
+ when nesting_level
21
+ output.puts "Already at nesting level #{nesting_level}"
22
+ when 0..max_nest_level
23
+ pry_instance.binding_stack = pry_instance.binding_stack[0..break_level]
24
+ else
25
+ output.puts "Invalid nest level. Must be between 0 and " \
26
+ "#{max_nest_level}. Got #{break_level}."
27
+ end
24
28
  end
25
29
  end
26
- end
27
30
 
28
- Pry::Commands.add_command(Pry::Command::JumpTo)
31
+ Pry::Commands.add_command(Pry::Command::JumpTo)
32
+ end
29
33
  end
@@ -1,35 +1,42 @@
1
- class Pry::Command::ListInspectors < Pry::ClassCommand
2
- match 'list-inspectors'
3
- group 'Input and Output'
4
- description 'List the inspector procs available for use.'
5
- banner <<-BANNER
6
- Usage: list-inspectors
1
+ # frozen_string_literal: true
7
2
 
8
- List the inspector procs available to print return values. You can use
9
- change-inspector to switch between them.
10
- BANNER
3
+ class Pry
4
+ class Command
5
+ class ListInspectors < Pry::ClassCommand
6
+ match 'list-inspectors'
7
+ group 'Input and Output'
8
+ description 'List the inspector procs available for use.'
9
+ banner <<-BANNER
10
+ Usage: list-inspectors
11
11
 
12
- def process
13
- output.puts heading("Available inspectors") + "\n"
14
- inspector_map.each do |name, inspector|
15
- output.write "Name: #{bold(name)}"
16
- output.puts selected_inspector?(inspector) ? selected_text : ""
17
- output.puts inspector[:description]
18
- output.puts
19
- end
20
- end
12
+ List the inspector procs available to print return values. You can use
13
+ change-inspector to switch between them.
14
+ BANNER
21
15
 
22
- private
23
- def inspector_map
24
- Pry::Inspector::MAP
25
- end
16
+ def process
17
+ output.puts heading("Available inspectors") + "\n"
18
+ inspector_map.each do |name, inspector|
19
+ output.write "Name: #{bold(name)}"
20
+ output.puts selected_inspector?(inspector) ? selected_text : ""
21
+ output.puts inspector[:description]
22
+ output.puts
23
+ end
24
+ end
26
25
 
27
- def selected_text
28
- red " (selected) "
29
- end
26
+ private
30
27
 
31
- def selected_inspector?(inspector)
32
- _pry_.print == inspector[:value]
28
+ def inspector_map
29
+ Pry::Inspector::MAP
30
+ end
31
+
32
+ def selected_text
33
+ red " (selected) "
34
+ end
35
+
36
+ def selected_inspector?(inspector)
37
+ pry_instance.print == inspector[:value]
38
+ end
39
+ Pry::Commands.add_command(self)
40
+ end
33
41
  end
34
- Pry::Commands.add_command(self)
35
42
  end
@@ -1,113 +1,135 @@
1
- require 'pry/commands/ls/ls_entity'
1
+ # frozen_string_literal: true
2
+
2
3
  class Pry
3
- class Command::Ls < Pry::ClassCommand
4
- DEFAULT_OPTIONS = {
5
- heading_color: :bright_blue,
6
- public_method_color: :default,
7
- private_method_color: :blue,
8
- protected_method_color: :blue,
9
- method_missing_color: :bright_red,
10
- local_var_color: :yellow,
11
- pry_var_color: :default, # e.g. _, _pry_, _file_
12
- instance_var_color: :blue, # e.g. @foo
13
- class_var_color: :bright_blue, # e.g. @@foo
14
- global_var_color: :default, # e.g. $CODERAY_DEBUG, $eventmachine_library
15
- builtin_global_color: :cyan, # e.g. $stdin, $-w, $PID
16
- pseudo_global_color: :cyan, # e.g. $~, $1..$9, $LAST_MATCH_INFO
17
- constant_color: :default, # e.g. VERSION, ARGF
18
- class_constant_color: :blue, # e.g. Object, Kernel
19
- exception_constant_color: :magenta, # e.g. Exception, RuntimeError
20
- unloaded_constant_color: :yellow, # Any constant that is still in .autoload? state
21
- separator: " ",
22
- ceiling: [Object, Module, Class]
23
- }
24
-
25
- match 'ls'
26
- group 'Context'
27
- description 'Show the list of vars and methods in the current scope.'
28
- command_options shellwords: false, interpolate: false
29
-
30
- banner <<-'BANNER'
31
- Usage: ls [-m|-M|-p|-pM] [-q|-v] [-c|-i] [Object]
32
- ls [-g] [-l]
33
-
34
- ls shows you which methods, constants and variables are accessible to Pry. By
35
- default it shows you the local variables defined in the current shell, and any
36
- public methods or instance variables defined on the current object.
37
-
38
- The colours used are configurable using Pry.config.ls.*_color, and the separator
39
- is Pry.config.ls.separator.
40
-
41
- Pry.config.ls.ceiling is used to hide methods defined higher up in the
42
- inheritance chain, this is by default set to [Object, Module, Class] so that
43
- methods defined on all Objects are omitted. The -v flag can be used to ignore
44
- this setting and show all methods, while the -q can be used to set the ceiling
45
- much lower and show only methods defined on the object or its direct class.
46
-
47
- Also check out `find-method` command (run `help find-method`).
48
- BANNER
49
-
50
- def options(opt)
51
- opt.on :m, :methods, "Show public methods defined on the Object"
52
- opt.on :M, "instance-methods", "Show public methods defined in a Module or Class"
53
- opt.on :p, :ppp, "Show public, protected (in yellow) and private (in green) methods"
54
- opt.on :q, :quiet, "Show only methods defined on object.singleton_class and object.class"
55
- opt.on :v, :verbose, "Show methods and constants on all super-classes (ignores Pry.config.ls.ceiling)"
56
- opt.on :g, :globals, "Show global variables, including those builtin to Ruby (in cyan)"
57
- opt.on :l, :locals, "Show hash of local vars, sorted by descending size"
58
- opt.on :c, :constants, "Show constants, highlighting classes (in blue), and exceptions (in purple).\n" <<
59
- " " * 32 << "Constants that are pending autoload? are also shown (in yellow)"
60
- opt.on :i, :ivars, "Show instance variables (in blue) and class variables (in bright blue)"
61
- opt.on :G, :grep, "Filter output by regular expression", argument: true
62
- if Object.respond_to?(:deprecate_constant)
63
- opt.on :d, :dconstants, "Show deprecated constants"
4
+ class Command
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
+ match 'ls'
28
+ group 'Context'
29
+ description 'Show the list of vars and methods in the current scope.'
30
+ command_options shellwords: false, interpolate: false
31
+
32
+ banner <<-'BANNER'
33
+ Usage: ls [-m|-M|-p|-pM] [-q|-v] [-c|-i] [Object]
34
+ ls [-g] [-l]
35
+
36
+ ls shows you which methods, constants and variables are accessible to Pry. By
37
+ default it shows you the local variables defined in the current shell, and any
38
+ public methods or instance variables defined on the current object.
39
+
40
+ The colours used are configurable using Pry.config.ls.*_color, and the separator
41
+ is Pry.config.ls.separator.
42
+
43
+ Pry.config.ls.ceiling is used to hide methods defined higher up in the
44
+ inheritance chain, this is by default set to [Object, Module, Class] so that
45
+ methods defined on all Objects are omitted. The -v flag can be used to ignore
46
+ this setting and show all methods, while the -q can be used to set the ceiling
47
+ much lower and show only methods defined on the object or its direct class.
48
+
49
+ Also check out `find-method` command (run `help find-method`).
50
+ BANNER
51
+
52
+ def options(opt)
53
+ opt.on :m, :methods, "Show public methods defined on the Object"
54
+ opt.on :M, "instance-methods", "Show public methods defined in a " \
55
+ "Module or Class"
56
+ opt.on :p, :ppp, "Show public, protected (in yellow) and private " \
57
+ "(in green) methods"
58
+ opt.on :q, :quiet, "Show only methods defined on object.singleton_class " \
59
+ "and object.class"
60
+ opt.on :v, :verbose, "Show methods and constants on all super-classes " \
61
+ "(ignores Pry.config.ls.ceiling)"
62
+ opt.on :g, :globals, "Show global variables, including those builtin to " \
63
+ "Ruby (in cyan)"
64
+ opt.on :l, :locals, "Show hash of local vars, sorted by descending size"
65
+ opt.on :c, :constants, "Show constants, highlighting classes (in blue), " \
66
+ "and exceptions (in purple).\n" \
67
+ "#{' ' * 32}Constants that are pending autoload? " \
68
+ "are also shown (in yellow)"
69
+ opt.on :i, :ivars, "Show instance variables (in blue) and class " \
70
+ "variables (in bright blue)"
71
+ opt.on :G, :grep, "Filter output by regular expression", argument: true
72
+
73
+ if Object.respond_to?(:deprecate_constant)
74
+ opt.on :d, :dconstants, "Show deprecated constants"
75
+ end
76
+
77
+ return unless Helpers::Platform.jruby?
78
+
79
+ opt.on :J, "all-java", "Show all the aliases for methods from java " \
80
+ "(default is to show only prettiest)"
64
81
  end
65
- if Helpers::Platform.jruby?
66
- opt.on :J, "all-java", "Show all the aliases for methods from java (default is to show only prettiest)"
82
+
83
+ # Exclude -q, -v and --grep because they,
84
+ # don't specify what the user wants to see.
85
+ def no_user_opts?
86
+ !(opts[:methods] || opts['instance-methods'] || opts[:ppp] ||
87
+ opts[:globals] || opts[:locals] || opts[:constants] || opts[:ivars])
67
88
  end
68
- end
69
89
 
70
- # Exclude -q, -v and --grep because they,
71
- # don't specify what the user wants to see.
72
- def no_user_opts?
73
- !(opts[:methods] || opts['instance-methods'] || opts[:ppp] ||
74
- opts[:globals] || opts[:locals] || opts[:constants] || opts[:ivars])
75
- end
90
+ def process
91
+ @interrogatee = args.empty? ? target_self : target.eval(args.join(' '))
92
+ raise_errors_if_arguments_are_weird
93
+ ls_entity = LsEntity.new(
94
+ interrogatee: @interrogatee,
95
+ no_user_opts: no_user_opts?,
96
+ opts: opts,
97
+ args: args,
98
+ pry_instance: pry_instance
99
+ )
76
100
 
77
- def process
78
- @interrogatee = args.empty? ? target_self : target.eval(args.join(' '))
79
- raise_errors_if_arguments_are_weird
80
- ls_entity = LsEntity.new({
81
- interrogatee: @interrogatee,
82
- no_user_opts: no_user_opts?,
83
- opts: opts,
84
- args: args,
85
- _pry_: _pry_
86
- })
87
-
88
- _pry_.pager.page ls_entity.entities_table
89
- end
101
+ pry_instance.pager.page ls_entity.entities_table
102
+ end
90
103
 
91
- private
92
-
93
- def error_list
94
- any_args = args.any?
95
- non_mod_interrogatee = !(Module === @interrogatee)
96
- [
97
- ['-l does not make sense with a specified Object', :locals, any_args],
98
- ['-g does not make sense with a specified Object', :globals, any_args],
99
- ['-q does not make sense with -v', :quiet, opts.present?(:verbose)],
100
- ['-M only makes sense with a Module or a Class', 'instance-methods', non_mod_interrogatee],
101
- ['-c only makes sense with a Module or a Class', :constants, any_args && non_mod_interrogatee]
102
- ]
103
- end
104
+ private
105
+
106
+ def error_list
107
+ any_args = args.any?
108
+ # rubocop:disable Style/CaseEquality
109
+ non_mod_interrogatee = !(Module === @interrogatee)
110
+ # rubocop:enable Style/CaseEquality
111
+ [
112
+ ['-l does not make sense with a specified Object', :locals, any_args],
113
+ ['-g does not make sense with a specified Object', :globals, any_args],
114
+ ['-q does not make sense with -v', :quiet, opts.present?(:verbose)],
115
+ [
116
+ '-M only makes sense with a Module or a Class', 'instance-methods',
117
+ non_mod_interrogatee
118
+ ],
119
+ [
120
+ '-c only makes sense with a Module or a Class', :constants,
121
+ any_args && non_mod_interrogatee
122
+ ]
123
+ ]
124
+ end
104
125
 
105
- def raise_errors_if_arguments_are_weird
106
- error_list.each do |message, option, invalid_expr|
107
- raise Pry::CommandError, message if opts.present?(option) && invalid_expr
126
+ def raise_errors_if_arguments_are_weird
127
+ error_list.each do |message, option, invalid_expr|
128
+ raise Pry::CommandError, message if opts.present?(option) && invalid_expr
129
+ end
108
130
  end
109
131
  end
110
- end
111
132
 
112
- Pry::Commands.add_command(Pry::Command::Ls)
133
+ Pry::Commands.add_command(Pry::Command::Ls)
134
+ end
113
135
  end
@@ -1,55 +1,72 @@
1
- require 'pry/commands/ls/interrogatable'
1
+ # frozen_string_literal: true
2
2
 
3
3
  class Pry
4
- class Command::Ls < Pry::ClassCommand
5
- class Constants < Pry::Command::Ls::Formatter
6
- DEPRECATED_CONSTANTS = [:Data, :Fixnum, :Bignum, :TimeoutError, :NIL, :FALSE, :TRUE]
7
- DEPRECATED_CONSTANTS << :JavaPackageModuleTemplate if Helpers::Platform.jruby?
8
- include Pry::Command::Ls::Interrogatable
9
-
10
- def initialize(interrogatee, no_user_opts, opts, _pry_)
11
- super(_pry_)
12
- @interrogatee = interrogatee
13
- @no_user_opts = no_user_opts
14
- @default_switch = opts[:constants]
15
- @verbose_switch = opts[:verbose]
16
- @dconstants = opts.dconstants?
17
- end
4
+ class Command
5
+ class Ls < Pry::ClassCommand
6
+ class Constants < Pry::Command::Ls::Formatter
7
+ DEPRECATED_CONSTANTS = [
8
+ :Data, :Fixnum, :Bignum, :TimeoutError, :NIL, :FALSE, :TRUE
9
+ ].tap do |constants|
10
+ constants << :JavaPackageModuleTemplate if Helpers::Platform.jruby?
11
+ end
12
+ include Pry::Command::Ls::Interrogatable
18
13
 
19
- def correct_opts?
20
- super || (@no_user_opts && interrogating_a_module?)
21
- end
14
+ def initialize(interrogatee, no_user_opts, opts, pry_instance)
15
+ super(pry_instance)
16
+ @interrogatee = interrogatee
17
+ @no_user_opts = no_user_opts
18
+ @default_switch = opts[:constants]
19
+ @verbose_switch = opts[:verbose]
20
+ @dconstants = opts.dconstants?
21
+ end
22
22
 
23
- def output_self
24
- mod = interrogatee_mod
25
- constants = WrappedModule.new(mod).constants(@verbose_switch)
26
- output_section('constants', grep.regexp[format(mod, constants)])
27
- end
23
+ def correct_opts?
24
+ super || (@no_user_opts && interrogating_a_module?)
25
+ end
28
26
 
29
- private
27
+ def output_self
28
+ mod = interrogatee_mod
29
+ constants = WrappedModule.new(mod).constants(@verbose_switch)
30
+ output_section('constants', grep.regexp[format(mod, constants)])
31
+ end
30
32
 
31
- def show_deprecated_constants?
32
- @dconstants == true
33
- end
33
+ private
34
34
 
35
- def format(mod, constants)
36
- constants.sort_by(&:downcase).map do |name|
37
- if Object.respond_to?(:deprecate_constant) and
38
- DEPRECATED_CONSTANTS.include?(name) and
39
- !show_deprecated_constants?
40
- next
41
- end
35
+ def show_deprecated_constants?
36
+ @dconstants == true
37
+ end
38
+
39
+ def format(mod, constants)
40
+ constants.sort_by(&:downcase).map do |name|
41
+ if Object.respond_to?(:deprecate_constant) &&
42
+ DEPRECATED_CONSTANTS.include?(name) &&
43
+ !show_deprecated_constants?
44
+ next
45
+ end
42
46
 
43
- if (const = (!mod.autoload?(name) && (mod.const_get(name) || true) rescue nil))
44
- if (const < Exception rescue false)
45
- color(:exception_constant, name)
46
- elsif (Module === mod.const_get(name) rescue false)
47
- color(:class_constant, name)
47
+ if (const = (begin
48
+ !mod.autoload?(name) && (mod.const_get(name) || true)
49
+ rescue StandardError
50
+ nil
51
+ end))
52
+ if begin
53
+ const < Exception
54
+ rescue StandardError
55
+ false
56
+ end
57
+ color(:exception_constant, name)
58
+ elsif begin
59
+ mod.const_get(name).is_a?(Module)
60
+ rescue StandardError
61
+ false
62
+ end
63
+ color(:class_constant, name)
64
+ else
65
+ color(:constant, name)
66
+ end
48
67
  else
49
- color(:constant, name)
68
+ color(:unloaded_constant, name)
50
69
  end
51
- else
52
- color(:unloaded_constant, name)
53
70
  end
54
71
  end
55
72
  end