pry 0.9.12.2 → 0.14.2
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +1141 -0
- data/LICENSE +2 -2
- data/README.md +466 -0
- data/bin/pry +4 -7
- data/lib/pry/basic_object.rb +10 -0
- data/lib/pry/block_command.rb +22 -0
- data/lib/pry/class_command.rb +194 -0
- data/lib/pry/cli.rb +97 -92
- data/lib/pry/code/code_file.rb +114 -0
- data/lib/pry/code/code_range.rb +7 -4
- data/lib/pry/code/loc.rb +27 -14
- data/lib/pry/code.rb +62 -90
- data/lib/pry/code_object.rb +83 -39
- data/lib/pry/color_printer.rb +66 -0
- data/lib/pry/command.rb +202 -371
- data/lib/pry/command_set.rb +151 -133
- data/lib/pry/command_state.rb +31 -0
- data/lib/pry/commands/amend_line.rb +86 -82
- data/lib/pry/commands/bang.rb +18 -14
- data/lib/pry/commands/bang_pry.rb +15 -11
- data/lib/pry/commands/cat/abstract_formatter.rb +23 -18
- data/lib/pry/commands/cat/exception_formatter.rb +85 -73
- data/lib/pry/commands/cat/file_formatter.rb +56 -63
- data/lib/pry/commands/cat/input_expression_formatter.rb +35 -30
- data/lib/pry/commands/cat.rb +64 -47
- data/lib/pry/commands/cd.rb +42 -26
- data/lib/pry/commands/change_inspector.rb +34 -0
- data/lib/pry/commands/change_prompt.rb +51 -0
- data/lib/pry/commands/clear_screen.rb +20 -0
- data/lib/pry/commands/code_collector.rb +148 -131
- data/lib/pry/commands/disable_pry.rb +23 -19
- data/lib/pry/commands/easter_eggs.rb +23 -34
- data/lib/pry/commands/edit/exception_patcher.rb +21 -17
- data/lib/pry/commands/edit/file_and_line_locator.rb +33 -24
- data/lib/pry/commands/edit.rb +183 -167
- data/lib/pry/commands/exit.rb +40 -35
- data/lib/pry/commands/exit_all.rb +24 -20
- data/lib/pry/commands/exit_program.rb +20 -17
- data/lib/pry/commands/find_method.rb +167 -167
- data/lib/pry/commands/fix_indent.rb +16 -12
- data/lib/pry/commands/help.rb +140 -133
- data/lib/pry/commands/hist.rb +153 -132
- data/lib/pry/commands/import_set.rb +20 -15
- data/lib/pry/commands/jump_to.rb +25 -21
- data/lib/pry/commands/list_inspectors.rb +42 -0
- data/lib/pry/commands/ls/constants.rb +75 -0
- data/lib/pry/commands/ls/formatter.rb +55 -0
- data/lib/pry/commands/ls/globals.rb +50 -0
- data/lib/pry/commands/ls/grep.rb +23 -0
- data/lib/pry/commands/ls/instance_vars.rb +40 -0
- data/lib/pry/commands/ls/interrogatable.rb +24 -0
- data/lib/pry/commands/ls/jruby_hacks.rb +55 -0
- data/lib/pry/commands/ls/local_names.rb +37 -0
- data/lib/pry/commands/ls/local_vars.rb +47 -0
- data/lib/pry/commands/ls/ls_entity.rb +65 -0
- data/lib/pry/commands/ls/methods.rb +55 -0
- data/lib/pry/commands/ls/methods_helper.rb +50 -0
- data/lib/pry/commands/ls/self_methods.rb +34 -0
- data/lib/pry/commands/ls.rb +100 -303
- data/lib/pry/commands/nesting.rb +21 -17
- data/lib/pry/commands/play.rb +93 -49
- data/lib/pry/commands/pry_backtrace.rb +22 -18
- data/lib/pry/commands/pry_version.rb +15 -11
- data/lib/pry/commands/raise_up.rb +33 -27
- data/lib/pry/commands/reload_code.rb +57 -48
- data/lib/pry/commands/reset.rb +16 -12
- data/lib/pry/commands/ri.rb +57 -38
- data/lib/pry/commands/save_file.rb +45 -43
- data/lib/pry/commands/shell_command.rb +66 -34
- data/lib/pry/commands/shell_mode.rb +22 -20
- data/lib/pry/commands/show_doc.rb +80 -65
- data/lib/pry/commands/show_info.rb +193 -159
- data/lib/pry/commands/show_input.rb +16 -11
- data/lib/pry/commands/show_source.rb +113 -33
- data/lib/pry/commands/stat.rb +35 -31
- data/lib/pry/commands/switch_to.rb +21 -15
- data/lib/pry/commands/toggle_color.rb +21 -13
- data/lib/pry/commands/watch_expression/expression.rb +43 -0
- data/lib/pry/commands/watch_expression.rb +110 -0
- data/lib/pry/commands/whereami.rb +157 -134
- data/lib/pry/commands/wtf.rb +78 -40
- data/lib/pry/config/attributable.rb +22 -0
- data/lib/pry/config/lazy_value.rb +29 -0
- data/lib/pry/config/memoized_value.rb +34 -0
- data/lib/pry/config/value.rb +24 -0
- data/lib/pry/config.rb +290 -220
- data/lib/pry/control_d_handler.rb +28 -0
- data/lib/pry/core_extensions.rb +50 -27
- data/lib/pry/editor.rb +130 -102
- data/lib/pry/env.rb +18 -0
- data/lib/pry/exception_handler.rb +43 -0
- data/lib/pry/exceptions.rb +73 -0
- data/lib/pry/forwardable.rb +27 -0
- data/lib/pry/helpers/base_helpers.rb +22 -151
- data/lib/pry/helpers/command_helpers.rb +55 -63
- data/lib/pry/helpers/documentation_helpers.rb +21 -13
- data/lib/pry/helpers/options_helpers.rb +15 -8
- data/lib/pry/helpers/platform.rb +55 -0
- data/lib/pry/helpers/table.rb +44 -32
- data/lib/pry/helpers/text.rb +96 -86
- data/lib/pry/helpers.rb +3 -0
- data/lib/pry/history.rb +101 -70
- data/lib/pry/hooks.rb +67 -137
- data/lib/pry/indent.rb +79 -73
- data/lib/pry/input_completer.rb +283 -0
- data/lib/pry/input_lock.rb +129 -0
- data/lib/pry/inspector.rb +39 -0
- data/lib/pry/last_exception.rb +61 -0
- data/lib/pry/method/disowned.rb +19 -5
- data/lib/pry/{commands/edit/method_patcher.rb → method/patcher.rb} +51 -42
- data/lib/pry/method/weird_method_locator.rb +80 -44
- data/lib/pry/method.rb +225 -176
- data/lib/pry/object_path.rb +91 -0
- data/lib/pry/output.rb +136 -0
- data/lib/pry/pager.rb +227 -68
- data/lib/pry/prompt.rb +214 -0
- data/lib/pry/pry_class.rb +216 -289
- data/lib/pry/pry_instance.rb +438 -500
- data/lib/pry/repl.rb +256 -0
- data/lib/pry/repl_file_loader.rb +34 -35
- data/lib/pry/ring.rb +89 -0
- data/lib/pry/slop/LICENSE +20 -0
- data/lib/pry/slop/commands.rb +190 -0
- data/lib/pry/slop/option.rb +210 -0
- data/lib/pry/slop.rb +672 -0
- data/lib/pry/syntax_highlighter.rb +26 -0
- data/lib/pry/system_command_handler.rb +17 -0
- data/lib/pry/testable/evalable.rb +24 -0
- data/lib/pry/testable/mockable.rb +22 -0
- data/lib/pry/testable/pry_tester.rb +88 -0
- data/lib/pry/testable/utility.rb +34 -0
- data/lib/pry/testable/variables.rb +52 -0
- data/lib/pry/testable.rb +68 -0
- data/lib/pry/version.rb +3 -1
- data/lib/pry/warning.rb +20 -0
- data/lib/pry/{module_candidate.rb → wrapped_module/candidate.rb} +36 -43
- data/lib/pry/wrapped_module.rb +102 -103
- data/lib/pry.rb +135 -261
- metadata +94 -283
- data/.document +0 -2
- data/.gitignore +0 -16
- data/.travis.yml +0 -21
- data/.yardopts +0 -1
- data/CHANGELOG +0 -534
- data/CONTRIBUTORS +0 -55
- data/Gemfile +0 -9
- data/Guardfile +0 -62
- data/README.markdown +0 -400
- data/Rakefile +0 -140
- data/TODO +0 -117
- data/lib/pry/commands/disabled_commands.rb +0 -2
- data/lib/pry/commands/gem_cd.rb +0 -26
- data/lib/pry/commands/gem_install.rb +0 -29
- data/lib/pry/commands/gem_list.rb +0 -33
- data/lib/pry/commands/gem_open.rb +0 -29
- data/lib/pry/commands/gist.rb +0 -102
- data/lib/pry/commands/install_command.rb +0 -51
- data/lib/pry/commands/simple_prompt.rb +0 -22
- data/lib/pry/commands.rb +0 -6
- data/lib/pry/completion.rb +0 -304
- data/lib/pry/custom_completions.rb +0 -6
- data/lib/pry/history_array.rb +0 -116
- data/lib/pry/plugins.rb +0 -103
- data/lib/pry/rbx_method.rb +0 -13
- data/lib/pry/rbx_path.rb +0 -22
- data/lib/pry/rubygem.rb +0 -74
- data/lib/pry/terminal.rb +0 -78
- data/lib/pry/test/helper.rb +0 -185
- data/man/pry.1 +0 -195
- data/man/pry.1.html +0 -204
- data/man/pry.1.ronn +0 -141
- data/pry.gemspec +0 -30
- data/spec/Procfile +0 -3
- data/spec/cli_spec.rb +0 -78
- data/spec/code_object_spec.rb +0 -277
- data/spec/code_spec.rb +0 -219
- data/spec/command_helpers_spec.rb +0 -29
- data/spec/command_integration_spec.rb +0 -644
- data/spec/command_set_spec.rb +0 -627
- data/spec/command_spec.rb +0 -821
- data/spec/commands/amend_line_spec.rb +0 -247
- data/spec/commands/bang_spec.rb +0 -19
- data/spec/commands/cat_spec.rb +0 -164
- data/spec/commands/cd_spec.rb +0 -250
- data/spec/commands/disable_pry_spec.rb +0 -25
- data/spec/commands/edit_spec.rb +0 -727
- data/spec/commands/exit_all_spec.rb +0 -34
- data/spec/commands/exit_program_spec.rb +0 -19
- data/spec/commands/exit_spec.rb +0 -34
- data/spec/commands/find_method_spec.rb +0 -70
- data/spec/commands/gem_list_spec.rb +0 -26
- data/spec/commands/gist_spec.rb +0 -79
- data/spec/commands/help_spec.rb +0 -56
- data/spec/commands/hist_spec.rb +0 -181
- data/spec/commands/jump_to_spec.rb +0 -15
- data/spec/commands/ls_spec.rb +0 -181
- data/spec/commands/play_spec.rb +0 -140
- data/spec/commands/raise_up_spec.rb +0 -56
- data/spec/commands/save_file_spec.rb +0 -177
- data/spec/commands/show_doc_spec.rb +0 -510
- data/spec/commands/show_input_spec.rb +0 -17
- data/spec/commands/show_source_spec.rb +0 -782
- data/spec/commands/whereami_spec.rb +0 -203
- data/spec/completion_spec.rb +0 -239
- data/spec/control_d_handler_spec.rb +0 -58
- data/spec/documentation_helper_spec.rb +0 -73
- data/spec/editor_spec.rb +0 -79
- data/spec/exception_whitelist_spec.rb +0 -21
- data/spec/fixtures/candidate_helper1.rb +0 -11
- data/spec/fixtures/candidate_helper2.rb +0 -8
- data/spec/fixtures/example.erb +0 -5
- data/spec/fixtures/example_nesting.rb +0 -33
- data/spec/fixtures/show_source_doc_examples.rb +0 -15
- data/spec/fixtures/testrc +0 -2
- data/spec/fixtures/testrcbad +0 -2
- data/spec/fixtures/whereami_helper.rb +0 -6
- data/spec/helper.rb +0 -34
- data/spec/helpers/bacon.rb +0 -86
- data/spec/helpers/mock_pry.rb +0 -43
- data/spec/helpers/table_spec.rb +0 -105
- data/spec/history_array_spec.rb +0 -67
- data/spec/hooks_spec.rb +0 -522
- data/spec/indent_spec.rb +0 -301
- data/spec/input_stack_spec.rb +0 -90
- data/spec/method_spec.rb +0 -482
- data/spec/prompt_spec.rb +0 -60
- data/spec/pry_defaults_spec.rb +0 -419
- data/spec/pry_history_spec.rb +0 -99
- data/spec/pry_output_spec.rb +0 -95
- data/spec/pry_spec.rb +0 -504
- data/spec/run_command_spec.rb +0 -25
- data/spec/sticky_locals_spec.rb +0 -157
- data/spec/syntax_checking_spec.rb +0 -81
- data/spec/wrapped_module_spec.rb +0 -261
- data/wiki/Customizing-pry.md +0 -397
- data/wiki/Home.md +0 -4
@@ -1,42 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Pry
|
2
|
-
class Command
|
3
|
-
class
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
class Command
|
5
|
+
class Cat
|
6
|
+
class InputExpressionFormatter < AbstractFormatter
|
7
|
+
attr_accessor :input_expressions
|
8
|
+
attr_accessor :opts
|
9
|
+
|
10
|
+
def initialize(input_expressions, opts)
|
11
|
+
@input_expressions = input_expressions
|
12
|
+
@opts = opts
|
13
|
+
end
|
11
14
|
|
12
|
-
|
13
|
-
|
15
|
+
def format
|
16
|
+
raise CommandError, "No input expressions!" if numbered_input_items.empty?
|
14
17
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
if numbered_input_items.length > 1
|
19
|
+
content = ''
|
20
|
+
numbered_input_items.each do |i, s|
|
21
|
+
content += "#{Helpers::Text.bold(i.to_s)}:\n"
|
22
|
+
content += decorate(Pry::Code(s).with_indentation(2)).to_s
|
23
|
+
end
|
20
24
|
|
21
|
-
|
22
|
-
|
23
|
-
|
25
|
+
content
|
26
|
+
else
|
27
|
+
decorate(Pry::Code(selected_input_items.first))
|
28
|
+
end
|
24
29
|
end
|
25
|
-
end
|
26
30
|
|
27
|
-
|
31
|
+
private
|
28
32
|
|
29
|
-
|
30
|
-
|
31
|
-
|
33
|
+
def selected_input_items
|
34
|
+
input_expressions[normalized_expression_range] || []
|
35
|
+
end
|
32
36
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
+
def numbered_input_items
|
38
|
+
@numbered_input_items ||= normalized_expression_range.zip(selected_input_items)
|
39
|
+
.reject { |_, s| s.nil? || s == "" }
|
40
|
+
end
|
37
41
|
|
38
|
-
|
39
|
-
|
42
|
+
def normalized_expression_range
|
43
|
+
absolute_index_range(opts[:i], input_expressions.count)
|
44
|
+
end
|
40
45
|
end
|
41
46
|
end
|
42
47
|
end
|
data/lib/pry/commands/cat.rb
CHANGED
@@ -1,53 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Pry
|
2
|
-
class Command
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
match 'cat'
|
9
|
-
group 'Input and Output'
|
10
|
-
description "Show code from a file, Pry's input buffer, or the last exception."
|
11
|
-
|
12
|
-
banner <<-'BANNER'
|
13
|
-
Usage: cat FILE
|
14
|
-
cat --ex [STACK_INDEX]
|
15
|
-
cat --in [INPUT_INDEX_OR_RANGE]
|
16
|
-
|
17
|
-
`cat` is capable of showing part or all of a source file, the context of the
|
18
|
-
last exception, or an expression from Pry's input history.
|
19
|
-
|
20
|
-
`cat --ex` defaults to showing the lines surrounding the location of the last
|
21
|
-
exception. Invoking it more than once travels up the exception's backtrace, and
|
22
|
-
providing a number shows the context of the given index of the backtrace.
|
23
|
-
BANNER
|
24
|
-
|
25
|
-
def options(opt)
|
26
|
-
opt.on :ex, "Show the context of the last exception", :optional_argument => true, :as => Integer
|
27
|
-
opt.on :i, :in, "Show one or more entries from Pry's expression history", :optional_argument => true, :as => Range, :default => -5..-1
|
28
|
-
opt.on :s, :start, "Starting line (defaults to the first line)", :optional_argument => true, :as => Integer
|
29
|
-
opt.on :e, :end, "Ending line (defaults to the last line)", :optional_argument => true, :as => Integer
|
30
|
-
opt.on :l, :'line-numbers', "Show line numbers"
|
31
|
-
opt.on :t, :type, "The file type for syntax highlighting (e.g., 'ruby' or 'python')", :argument => true, :as => Symbol
|
32
|
-
end
|
4
|
+
class Command
|
5
|
+
class Cat < Pry::ClassCommand
|
6
|
+
match 'cat'
|
7
|
+
group 'Input and Output'
|
8
|
+
description "Show code from a file, Pry's input buffer, or the last exception."
|
33
9
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
10
|
+
banner <<-'BANNER'
|
11
|
+
Usage: cat FILE
|
12
|
+
cat --ex [STACK_INDEX]
|
13
|
+
cat --in [INPUT_INDEX_OR_RANGE]
|
14
|
+
|
15
|
+
`cat` is capable of showing part or all of a source file, the context of the
|
16
|
+
last exception, or an expression from Pry's input history.
|
17
|
+
|
18
|
+
`cat --ex` defaults to showing the lines surrounding the location of the last
|
19
|
+
exception. Invoking it more than once travels up the exception's backtrace, and
|
20
|
+
providing a number shows the context of the given index of the backtrace.
|
21
|
+
BANNER
|
22
|
+
|
23
|
+
def options(opt)
|
24
|
+
opt.on :ex, "Show the context of the last exception",
|
25
|
+
optional_argument: true, as: Integer
|
26
|
+
opt.on :i, :in, "Show one or more entries from Pry's expression history",
|
27
|
+
optional_argument: true, as: Range, default: -5..-1
|
28
|
+
opt.on :s, :start, "Starting line (defaults to the first line)",
|
29
|
+
optional_argument: true, as: Integer
|
30
|
+
opt.on :e, :end, "Ending line (defaults to the last line)",
|
31
|
+
optional_argument: true, as: Integer
|
32
|
+
opt.on :l, :'line-numbers', "Show line numbers"
|
33
|
+
opt.on :t, :type, "The file type for syntax highlighting " \
|
34
|
+
"(e.g., 'ruby' or 'python')",
|
35
|
+
argument: true, as: Symbol
|
36
|
+
end
|
46
37
|
|
47
|
-
|
48
|
-
|
38
|
+
def process
|
39
|
+
output =
|
40
|
+
if opts.present?(:ex)
|
41
|
+
ExceptionFormatter.new(
|
42
|
+
pry_instance.last_exception, pry_instance, opts
|
43
|
+
).format
|
44
|
+
elsif opts.present?(:in)
|
45
|
+
InputExpressionFormatter.new(pry_instance.input_ring, opts).format
|
46
|
+
else
|
47
|
+
FileFormatter.new(args.first, pry_instance, opts).format
|
48
|
+
end
|
49
|
+
|
50
|
+
pry_instance.pager.page output
|
51
|
+
end
|
52
|
+
|
53
|
+
def complete(search)
|
54
|
+
super | load_path_completions
|
55
|
+
end
|
56
|
+
|
57
|
+
def load_path_completions
|
58
|
+
$LOAD_PATH.flat_map do |path|
|
59
|
+
Dir[path + '/**/*'].map do |f|
|
60
|
+
next if File.directory?(f)
|
61
|
+
|
62
|
+
f.sub!(path + '/', '')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
49
66
|
end
|
50
|
-
end
|
51
67
|
|
52
|
-
|
68
|
+
Pry::Commands.add_command(Pry::Command::Cat)
|
69
|
+
end
|
53
70
|
end
|
data/lib/pry/commands/cd.rb
CHANGED
@@ -1,30 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
class Pry
|
2
|
-
class Command
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
4
|
+
class Command
|
5
|
+
class Cd < Pry::ClassCommand
|
6
|
+
match 'cd'
|
7
|
+
group 'Context'
|
8
|
+
description 'Move into a new context (object or scope).'
|
9
|
+
|
10
|
+
banner <<-'BANNER'
|
11
|
+
Usage: cd [OPTIONS] [--help]
|
12
|
+
|
13
|
+
Move into new context (object or scope). As in UNIX shells use `cd ..` to go
|
14
|
+
back, `cd /` to return to Pry top-level and `cd -` to toggle between last two
|
15
|
+
scopes. Complex syntax (e.g `cd ../@x/@y`) also supported.
|
16
|
+
|
17
|
+
cd @x
|
18
|
+
cd ..
|
19
|
+
cd /
|
20
|
+
cd -
|
21
|
+
|
22
|
+
https://github.com/pry/pry/wiki/State-navigation#wiki-Changing_scope
|
23
|
+
BANNER
|
24
|
+
|
25
|
+
def process
|
26
|
+
state.old_stack ||= []
|
27
|
+
|
28
|
+
if arg_string.strip == "-"
|
29
|
+
unless state.old_stack.empty?
|
30
|
+
pry_instance.binding_stack, state.old_stack =
|
31
|
+
state.old_stack, pry_instance.binding_stack
|
32
|
+
end
|
33
|
+
else
|
34
|
+
stack = ObjectPath.new(arg_string, pry_instance.binding_stack).resolve
|
35
|
+
|
36
|
+
if stack && stack != pry_instance.binding_stack
|
37
|
+
state.old_stack = pry_instance.binding_stack
|
38
|
+
pry_instance.binding_stack = stack
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
26
42
|
end
|
27
|
-
end
|
28
43
|
|
29
|
-
|
44
|
+
Pry::Commands.add_command(Pry::Command::Cd)
|
45
|
+
end
|
30
46
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Pry
|
4
|
+
class Command
|
5
|
+
class ChangeInspector < Pry::ClassCommand
|
6
|
+
match 'change-inspector'
|
7
|
+
group 'Input and Output'
|
8
|
+
description 'Change the current inspector proc.'
|
9
|
+
command_options argument_required: true
|
10
|
+
banner <<-BANNER
|
11
|
+
Usage: change-inspector NAME
|
12
|
+
|
13
|
+
Change the proc used to print return values. See list-inspectors for a list
|
14
|
+
of available procs and a short description of what each one does.
|
15
|
+
BANNER
|
16
|
+
|
17
|
+
def process(inspector)
|
18
|
+
unless inspector_map.key?(inspector)
|
19
|
+
raise Pry::CommandError, "'#{inspector}' isn't a known inspector!"
|
20
|
+
end
|
21
|
+
|
22
|
+
pry_instance.print = inspector_map[inspector][:value]
|
23
|
+
output.puts "Switched to the '#{inspector}' inspector!"
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def inspector_map
|
29
|
+
Pry::Inspector::MAP
|
30
|
+
end
|
31
|
+
Pry::Commands.add_command(self)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Pry
|
4
|
+
class Command
|
5
|
+
class ChangePrompt < Pry::ClassCommand
|
6
|
+
match 'change-prompt'
|
7
|
+
group 'Input and Output'
|
8
|
+
description 'Change the current prompt.'
|
9
|
+
command_options argument_required: true
|
10
|
+
banner <<-BANNER
|
11
|
+
Usage: change-prompt [OPTIONS] [NAME]
|
12
|
+
|
13
|
+
Change the current prompt.
|
14
|
+
BANNER
|
15
|
+
|
16
|
+
def options(opt)
|
17
|
+
opt.on(:l, :list, 'List the available prompts')
|
18
|
+
end
|
19
|
+
|
20
|
+
def process(prompt)
|
21
|
+
if opts.present?(:l)
|
22
|
+
list_prompts
|
23
|
+
else
|
24
|
+
change_prompt(prompt)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def list_prompts
|
31
|
+
prompts = Pry::Prompt.all.map do |name, prompt|
|
32
|
+
"#{bold(name)}#{red(' (selected)') if pry_instance.prompt == prompt}\n" +
|
33
|
+
prompt.description
|
34
|
+
end
|
35
|
+
output.puts(prompts.join("\n" * 2))
|
36
|
+
end
|
37
|
+
|
38
|
+
def change_prompt(prompt)
|
39
|
+
if Pry::Prompt[prompt]
|
40
|
+
pry_instance.prompt = Pry::Prompt[prompt]
|
41
|
+
else
|
42
|
+
raise Pry::CommandError,
|
43
|
+
"'#{prompt}' isn't a known prompt. Run `change-prompt --list` " \
|
44
|
+
"to see the list of known prompts."
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
Pry::Commands.add_command(self)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Pry
|
4
|
+
class Command
|
5
|
+
class ClearScreen < Pry::ClassCommand
|
6
|
+
match 'clear-screen'
|
7
|
+
group 'Input and Output'
|
8
|
+
description 'Clear the contents of the screen/window Pry is running in.'
|
9
|
+
|
10
|
+
def process
|
11
|
+
if Pry::Helpers::Platform.windows?
|
12
|
+
pry_instance.config.system.call(pry_instance.output, 'cls', pry_instance)
|
13
|
+
else
|
14
|
+
pry_instance.config.system.call(pry_instance.output, 'clear', pry_instance)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
Pry::Commands.add_command(self)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|