pry 0.9.12.6-i386-mswin32 → 0.10.0-i386-mswin32
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 +4 -4
- data/CHANGELOG.md +702 -0
- data/LICENSE +2 -2
- data/{README.markdown → README.md} +37 -31
- data/lib/pry.rb +38 -151
- data/lib/pry/cli.rb +35 -17
- data/lib/pry/code.rb +19 -63
- data/lib/pry/code/code_file.rb +103 -0
- data/lib/pry/code/code_range.rb +2 -1
- data/lib/pry/code/loc.rb +2 -2
- data/lib/pry/code_object.rb +40 -21
- data/lib/pry/color_printer.rb +55 -0
- data/lib/pry/command.rb +12 -9
- data/lib/pry/command_set.rb +81 -38
- data/lib/pry/commands.rb +1 -1
- data/lib/pry/commands/amend_line.rb +2 -2
- data/lib/pry/commands/bang.rb +1 -1
- data/lib/pry/commands/cat.rb +11 -2
- data/lib/pry/commands/cat/exception_formatter.rb +6 -7
- data/lib/pry/commands/cat/file_formatter.rb +15 -32
- data/lib/pry/commands/cat/input_expression_formatter.rb +1 -1
- data/lib/pry/commands/cd.rb +14 -3
- data/lib/pry/commands/change_inspector.rb +27 -0
- data/lib/pry/commands/change_prompt.rb +26 -0
- data/lib/pry/commands/code_collector.rb +4 -4
- data/lib/pry/commands/easter_eggs.rb +3 -3
- data/lib/pry/commands/edit.rb +10 -22
- data/lib/pry/commands/edit/exception_patcher.rb +2 -2
- data/lib/pry/commands/edit/file_and_line_locator.rb +0 -2
- data/lib/pry/commands/exit_program.rb +0 -1
- data/lib/pry/commands/find_method.rb +16 -22
- data/lib/pry/commands/gem_install.rb +5 -2
- data/lib/pry/commands/gem_open.rb +1 -1
- data/lib/pry/commands/gist.rb +10 -11
- data/lib/pry/commands/help.rb +14 -14
- data/lib/pry/commands/hist.rb +27 -8
- data/lib/pry/commands/install_command.rb +14 -12
- data/lib/pry/commands/list_inspectors.rb +35 -0
- data/lib/pry/commands/list_prompts.rb +35 -0
- data/lib/pry/commands/ls.rb +72 -296
- data/lib/pry/commands/ls/constants.rb +47 -0
- data/lib/pry/commands/ls/formatter.rb +49 -0
- data/lib/pry/commands/ls/globals.rb +48 -0
- data/lib/pry/commands/ls/grep.rb +21 -0
- data/lib/pry/commands/ls/instance_vars.rb +39 -0
- data/lib/pry/commands/ls/interrogatable.rb +18 -0
- data/lib/pry/commands/ls/jruby_hacks.rb +49 -0
- data/lib/pry/commands/ls/local_names.rb +35 -0
- data/lib/pry/commands/ls/local_vars.rb +39 -0
- data/lib/pry/commands/ls/ls_entity.rb +70 -0
- data/lib/pry/commands/ls/methods.rb +57 -0
- data/lib/pry/commands/ls/methods_helper.rb +46 -0
- data/lib/pry/commands/ls/self_methods.rb +32 -0
- data/lib/pry/commands/play.rb +44 -10
- data/lib/pry/commands/pry_backtrace.rb +1 -2
- data/lib/pry/commands/raise_up.rb +2 -2
- data/lib/pry/commands/reload_code.rb +16 -19
- data/lib/pry/commands/ri.rb +7 -3
- data/lib/pry/commands/shell_command.rb +18 -13
- data/lib/pry/commands/shell_mode.rb +2 -4
- data/lib/pry/commands/show_doc.rb +5 -0
- data/lib/pry/commands/show_info.rb +8 -13
- data/lib/pry/commands/show_source.rb +15 -3
- data/lib/pry/commands/simple_prompt.rb +1 -1
- data/lib/pry/commands/toggle_color.rb +8 -4
- data/lib/pry/commands/watch_expression.rb +105 -0
- data/lib/pry/commands/watch_expression/expression.rb +38 -0
- data/lib/pry/commands/whereami.rb +18 -10
- data/lib/pry/commands/wtf.rb +3 -3
- data/lib/pry/config.rb +20 -254
- data/lib/pry/config/behavior.rb +139 -0
- data/lib/pry/config/convenience.rb +26 -0
- data/lib/pry/config/default.rb +165 -0
- data/lib/pry/core_extensions.rb +31 -21
- data/lib/pry/editor.rb +107 -103
- data/lib/pry/exceptions.rb +77 -0
- data/lib/pry/helpers/base_helpers.rb +22 -109
- data/lib/pry/helpers/command_helpers.rb +10 -8
- data/lib/pry/helpers/documentation_helpers.rb +1 -2
- data/lib/pry/helpers/text.rb +4 -5
- data/lib/pry/history.rb +46 -45
- data/lib/pry/history_array.rb +6 -1
- data/lib/pry/hooks.rb +9 -29
- data/lib/pry/indent.rb +6 -6
- data/lib/pry/input_completer.rb +242 -0
- data/lib/pry/input_lock.rb +132 -0
- data/lib/pry/inspector.rb +27 -0
- data/lib/pry/last_exception.rb +61 -0
- data/lib/pry/method.rb +82 -87
- data/lib/pry/{commands/edit/method_patcher.rb → method/patcher.rb} +41 -38
- data/lib/pry/module_candidate.rb +4 -14
- data/lib/pry/object_path.rb +82 -0
- data/lib/pry/output.rb +50 -0
- data/lib/pry/pager.rb +193 -48
- data/lib/pry/plugins.rb +1 -1
- data/lib/pry/prompt.rb +26 -0
- data/lib/pry/pry_class.rb +149 -230
- data/lib/pry/pry_instance.rb +302 -413
- data/lib/pry/rbx_path.rb +1 -1
- data/lib/pry/repl.rb +202 -0
- data/lib/pry/repl_file_loader.rb +20 -26
- data/lib/pry/rubygem.rb +13 -5
- data/lib/pry/terminal.rb +2 -1
- data/lib/pry/test/helper.rb +26 -41
- data/lib/pry/version.rb +1 -1
- data/lib/pry/wrapped_module.rb +45 -59
- metadata +62 -225
- data/.document +0 -2
- data/.gitignore +0 -16
- data/.travis.yml +0 -25
- data/.yardopts +0 -1
- data/CHANGELOG +0 -534
- data/CONTRIBUTORS +0 -55
- data/Gemfile +0 -12
- data/Rakefile +0 -140
- data/TODO +0 -117
- data/lib/pry/completion.rb +0 -321
- data/lib/pry/custom_completions.rb +0 -6
- data/lib/pry/rbx_method.rb +0 -13
- data/man/pry.1 +0 -195
- data/man/pry.1.html +0 -204
- data/man/pry.1.ronn +0 -141
- data/pry.gemspec +0 -29
- 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 -241
- 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 -515
- 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
@@ -11,10 +11,14 @@ class Pry
|
|
11
11
|
BANNER
|
12
12
|
|
13
13
|
def process
|
14
|
-
|
15
|
-
output.puts "Syntax highlighting #{
|
14
|
+
_pry_.color = color_toggle
|
15
|
+
output.puts "Syntax highlighting #{_pry_.color ? "on" : "off"}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def color_toggle
|
19
|
+
!_pry_.color
|
16
20
|
end
|
17
|
-
end
|
18
21
|
|
19
|
-
|
22
|
+
Pry::Commands.add_command(self)
|
23
|
+
end
|
20
24
|
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
class Pry
|
2
|
+
class Command::WatchExpression < Pry::ClassCommand
|
3
|
+
require 'pry/commands/watch_expression/expression.rb'
|
4
|
+
|
5
|
+
match 'watch'
|
6
|
+
group 'Context'
|
7
|
+
description 'Watch the value of an expression and print a notification whenever it changes.'
|
8
|
+
command_options :use_prefix => false
|
9
|
+
|
10
|
+
banner <<-'BANNER'
|
11
|
+
Usage: watch [EXPRESSION]
|
12
|
+
watch
|
13
|
+
watch --delete [INDEX]
|
14
|
+
|
15
|
+
watch [EXPRESSION] adds an expression to the list of those being watched.
|
16
|
+
It will be re-evaluated every time you hit enter in pry. If its value has
|
17
|
+
changed, the new value will be printed to the console.
|
18
|
+
|
19
|
+
This is useful if you are step-through debugging and want to see how
|
20
|
+
something changes over time. It's also useful if you're trying to write
|
21
|
+
a method inside pry and want to check that it gives the right answers
|
22
|
+
every time you redefine it.
|
23
|
+
|
24
|
+
watch on its own displays all the currently watched expressions and their
|
25
|
+
values, and watch --delete [INDEX] allows you to delete expressions from
|
26
|
+
the list being watched.
|
27
|
+
BANNER
|
28
|
+
|
29
|
+
def options(opt)
|
30
|
+
opt.on :d, :delete,
|
31
|
+
"Delete the watch expression with the given index. If no index is given; clear all watch expressions.",
|
32
|
+
:optional_argument => true, :as => Integer
|
33
|
+
opt.on :l, :list,
|
34
|
+
"Show all current watch expressions and their values. Calling watch with no expressions or options will also show the watch expressions."
|
35
|
+
end
|
36
|
+
|
37
|
+
def process
|
38
|
+
case
|
39
|
+
when opts.present?(:delete)
|
40
|
+
delete opts[:delete]
|
41
|
+
when opts.present?(:list) || args.empty?
|
42
|
+
list
|
43
|
+
else
|
44
|
+
add_hook
|
45
|
+
add_expression(args)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def expressions
|
52
|
+
_pry_.config.watch_expressions ||= []
|
53
|
+
end
|
54
|
+
|
55
|
+
def delete(index)
|
56
|
+
if index
|
57
|
+
output.puts "Deleting watch expression ##{index}: #{expressions[index-1]}"
|
58
|
+
expressions.delete_at(index-1)
|
59
|
+
else
|
60
|
+
output.puts "Deleting all watched expressions"
|
61
|
+
expressions.clear
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def list
|
66
|
+
if expressions.empty?
|
67
|
+
output.puts "No watched expressions"
|
68
|
+
else
|
69
|
+
_pry_.pager.open do |pager|
|
70
|
+
pager.puts "Listing all watched expressions:"
|
71
|
+
pager.puts ""
|
72
|
+
expressions.each_with_index do |expr, index|
|
73
|
+
pager.print text.with_line_numbers(expr.to_s, index+1)
|
74
|
+
end
|
75
|
+
pager.puts ""
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def eval_and_print_changed(output)
|
81
|
+
expressions.each do |expr|
|
82
|
+
expr.eval!
|
83
|
+
if expr.changed?
|
84
|
+
output.puts "#{text.blue "watch"}: #{expr.to_s}"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def add_expression(arguments)
|
90
|
+
expressions << Expression.new(_pry_, target, arg_string)
|
91
|
+
output.puts "Watching #{Code.new(arg_string)}"
|
92
|
+
end
|
93
|
+
|
94
|
+
def add_hook
|
95
|
+
hook = [:after_eval, :watch_expression]
|
96
|
+
unless _pry_.hooks.hook_exists?(*hook)
|
97
|
+
_pry_.hooks.add_hook(*hook) do |_, _pry_|
|
98
|
+
eval_and_print_changed _pry_.output
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
Pry::Commands.add_command(Pry::Command::WatchExpression)
|
105
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
class Pry
|
2
|
+
class Command::WatchExpression
|
3
|
+
class Expression
|
4
|
+
attr_reader :target, :source, :value, :previous_value, :_pry_
|
5
|
+
|
6
|
+
def initialize(_pry_, target, source)
|
7
|
+
@_pry_ = _pry_
|
8
|
+
@target = target
|
9
|
+
@source = source.strip
|
10
|
+
end
|
11
|
+
|
12
|
+
def eval!
|
13
|
+
@previous_value = @value
|
14
|
+
@value = Pry::ColorPrinter.pp(target_eval(target, source), "")
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_s
|
18
|
+
"#{Code.new(source).strip} => #{value}"
|
19
|
+
end
|
20
|
+
|
21
|
+
# Has the value of the expression changed?
|
22
|
+
#
|
23
|
+
# We use the pretty-printed string represenation to detect differences
|
24
|
+
# as this avoids problems with dup (causes too many differences) and == (causes too few)
|
25
|
+
def changed?
|
26
|
+
(value != previous_value)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def target_eval(target, source)
|
32
|
+
target.eval(source)
|
33
|
+
rescue => e
|
34
|
+
e
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
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)
|
91
|
+
out = "\n#{text.bold('From:')} #{location}:\n\n" <<
|
92
|
+
code.with_line_numbers(use_line_numbers?).with_marker(marker) << "\n"
|
93
93
|
|
94
|
-
|
94
|
+
_pry_.pager.page 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 ==
|
112
|
+
target_self == Pry.main
|
113
113
|
end
|
114
114
|
|
115
115
|
def handle_internal_binding
|
@@ -144,14 +144,21 @@ 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
|
+
|
147
155
|
def class_code
|
148
156
|
return @class_code if @class_code
|
149
157
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
end
|
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)
|
155
162
|
end
|
156
163
|
|
157
164
|
def valid_method?
|
@@ -171,7 +178,7 @@ class Pry
|
|
171
178
|
|
172
179
|
def window_size
|
173
180
|
if args.empty?
|
174
|
-
|
181
|
+
_pry_.config.default_window_size
|
175
182
|
else
|
176
183
|
args.first.to_i
|
177
184
|
end
|
@@ -179,4 +186,5 @@ class Pry
|
|
179
186
|
end
|
180
187
|
|
181
188
|
Pry::Commands.add_command(Pry::Command::Whereami)
|
189
|
+
Pry::Commands.alias_command '@', 'whereami'
|
182
190
|
end
|
data/lib/pry/commands/wtf.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class Pry
|
2
2
|
class Command::Wtf < Pry::ClassCommand
|
3
|
-
match
|
3
|
+
match(/wtf([?!]*)/)
|
4
4
|
group 'Context'
|
5
5
|
description 'Show the backtrace of the most recent exception.'
|
6
6
|
options :listing => 'wtf?'
|
@@ -50,8 +50,8 @@ class Pry
|
|
50
50
|
|
51
51
|
def size_of_backtrace
|
52
52
|
[captures[0].size, 0.5].max * 10
|
53
|
+
end
|
53
54
|
end
|
54
|
-
end
|
55
55
|
|
56
|
-
Pry::Commands.add_command(Pry::Command::Wtf)
|
56
|
+
Pry::Commands.add_command(Pry::Command::Wtf)
|
57
57
|
end
|
data/lib/pry/config.rb
CHANGED
@@ -1,258 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
# Readline, File and custom objects. It can also be a Proc which returns an
|
11
|
-
# object implementing the readline method.
|
12
|
-
# @return [#readline] The object to use for input by default by all
|
13
|
-
# Pry instances.
|
14
|
-
# @example
|
15
|
-
# Pry.config.input = StringIO.new("@x = 10\nexit")
|
16
|
-
def input
|
17
|
-
@reified_input ||=
|
18
|
-
if @input.respond_to?(:call)
|
19
|
-
@input.call
|
20
|
-
else
|
21
|
-
@input
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def input=(input)
|
26
|
-
@reified_input = nil
|
27
|
-
@input = input
|
28
|
-
end
|
29
|
-
|
30
|
-
# Get/Set the object to use for output by default by all Pry instances.
|
31
|
-
# Pry.config.output is an option determining the output object - the object to which
|
32
|
-
# Pry writes its output. Pry accepts any object that implements the puts method. This
|
33
|
-
# includes IO objects, StringIO, File and custom objects.
|
34
|
-
# @return [#puts] The object to use for output by default by all
|
35
|
-
# Pry instances.
|
36
|
-
# @example
|
37
|
-
# Pry.config.output = StringIO.new
|
38
|
-
attr_accessor :output
|
39
|
-
|
40
|
-
# Get/Set the object to use for commands by default by all Pry instances.
|
41
|
-
# @return [Pry::CommandBase] The object to use for commands by default by all
|
42
|
-
# Pry instances.
|
43
|
-
# @example
|
44
|
-
# Pry.config.commands = Pry::CommandSet.new do
|
45
|
-
# import_from Pry::Commands, "ls"
|
46
|
-
#
|
47
|
-
# command "greet" do |name|
|
48
|
-
# output.puts "hello #{name}"
|
49
|
-
# end
|
50
|
-
# end
|
51
|
-
attr_accessor :commands
|
52
|
-
|
53
|
-
# Get/Set the Proc to use for printing by default by all Pry
|
54
|
-
# instances.
|
55
|
-
# Two parameters are passed to the print Proc: these are (1) the
|
56
|
-
# output object for the current session and (2) the expression value to print. It is important
|
57
|
-
# that you write to the output object instead of just stdout so that all Pry output can be redirected if necessary.
|
58
|
-
# This is the 'print' component of the REPL.
|
59
|
-
# @return [Proc] The Proc to use for printing by default by all
|
60
|
-
# Pry instances.
|
61
|
-
# @example
|
62
|
-
# Pry.config.print = proc { |output, value| output.puts "=> #{value.inspect}" }
|
63
|
-
attr_accessor :print
|
64
|
-
|
65
|
-
# Pry.config.exception_handler is an option determining the exception handler object - the
|
66
|
-
# Proc responsible for dealing with exceptions raised by user input to the REPL.
|
67
|
-
# Three parameters are passed to the exception handler Proc: these
|
68
|
-
# are (1) the output object for the current session, (2) the
|
69
|
-
# exception object that was raised inside the Pry session, and (3)
|
70
|
-
# a reference to the associated Pry instance.
|
71
|
-
# @return [Proc] The Proc to use for printing exceptions by default by all
|
72
|
-
# Pry instances.
|
73
|
-
# @example
|
74
|
-
# Pry.config.exception_handler = proc do |output, exception, _|
|
75
|
-
# output.puts "#{exception.class}: #{exception.message}"
|
76
|
-
# output.puts "from #{exception.backtrace.first}"
|
77
|
-
# end
|
78
|
-
attr_accessor :exception_handler
|
79
|
-
|
80
|
-
# @return [Array] The classes of exception that will not be caught by Pry.
|
81
|
-
# @example
|
82
|
-
# Pry.config.exception_whitelist = [SystemExit, SignalException]
|
83
|
-
attr_accessor :exception_whitelist
|
84
|
-
|
85
|
-
# @return [Fixnum] The number of lines of context to show before and after
|
86
|
-
# exceptions, etc.
|
87
|
-
# @example
|
88
|
-
# Pry.config.default_window_size = 10
|
89
|
-
attr_accessor :default_window_size
|
90
|
-
|
91
|
-
# Get/Set the `Pry::Hooks` instance that defines Pry hooks used by default by all Pry
|
92
|
-
# instances.
|
93
|
-
# @return [Pry::Hooks] The hooks used by default by all Pry instances.
|
94
|
-
# @example
|
95
|
-
# Pry.config.hooks = Pry::Hooks.new.add_hook(:before_session,
|
96
|
-
# :default) { |output, target, _pry_| output.puts "Good morning!" }
|
97
|
-
attr_reader :hooks
|
1
|
+
class Pry::Config
|
2
|
+
require_relative 'config/behavior'
|
3
|
+
require_relative 'config/default'
|
4
|
+
require_relative 'config/convenience'
|
5
|
+
include Pry::Config::Behavior
|
6
|
+
|
7
|
+
def self.shortcuts
|
8
|
+
Convenience::SHORTCUTS
|
9
|
+
end
|
98
10
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
11
|
+
#
|
12
|
+
# FIXME
|
13
|
+
# @param [Pry::Hooks] hooks
|
14
|
+
#
|
15
|
+
def hooks=(hooks)
|
16
|
+
if hooks.is_a?(Hash)
|
17
|
+
warn "Hash-based hooks are now deprecated! Use a `Pry::Hooks` object " \
|
18
|
+
"instead! http://rubydoc.info/github/pry/pry/master/Pry/Hooks"
|
19
|
+
self["hooks"] = Pry::Hooks.from_hash(hooks)
|
20
|
+
else
|
21
|
+
self["hooks"] = hooks
|
109
22
|
end
|
110
|
-
|
111
|
-
# Get/Set the stack of input objects that a Pry instance switches
|
112
|
-
# to when its current input object encounters EOF.
|
113
|
-
# @return [Array] The array of input objects.
|
114
|
-
# @example
|
115
|
-
# Pry.config.input_stack = [StringIO.new("puts 'hello world'\nexit")]
|
116
|
-
attr_accessor :input_stack
|
117
|
-
|
118
|
-
# Get the array of Procs (or single Proc) to be used for the prompts by default by
|
119
|
-
# all Pry instances.
|
120
|
-
# Three parameters are passed into the prompt procs, (1) the
|
121
|
-
# object that is the target of the session, (2) the current
|
122
|
-
# nesting level, and (3) a reference to the associated Pry instance. These objects can be used in the prompt, if desired.
|
123
|
-
# @return [Array<Proc>, Proc] The array of Procs to be used for the
|
124
|
-
# prompts by default by all Pry instances.
|
125
|
-
# @example
|
126
|
-
# Pry.config.prompt = proc { |obj, nest_level, _pry_| "#{obj}:#{nest_level}> " }
|
127
|
-
attr_accessor :prompt
|
128
|
-
|
129
|
-
# The display name that is part of the prompt. Default is 'pry'.
|
130
|
-
# You can set your own name so you can identify which project your current pry session
|
131
|
-
# is using. This is useful if you have a local pryrc file in a Rails project for example.
|
132
|
-
# @return [String]
|
133
|
-
# @example
|
134
|
-
# Pry.config.prompt_name = 'my_rails_project'
|
135
|
-
attr_accessor :prompt_name
|
136
|
-
|
137
|
-
# The default editor to use. Defaults to $VISUAL, $EDITOR, or a sensible fallback
|
138
|
-
# for the platform.
|
139
|
-
# If `editor` is a String then that string is used as the shell
|
140
|
-
# command to invoke the editor. If `editor` is callable (e.g a
|
141
|
-
# Proc) then `file`, `line`, and `reloading` are passed in as parameters and the
|
142
|
-
# return value of that callable invocation is used as the exact
|
143
|
-
# shell command to invoke the editor. `reloading` indicates whether Pry will be
|
144
|
-
# reloading code after the shell command returns. Any or all of these parameters
|
145
|
-
# can be omitted from the callable's signature.
|
146
|
-
# @example String
|
147
|
-
# Pry.config.editor = "emacsclient"
|
148
|
-
# @example Callable
|
149
|
-
# Pry.config.editor = proc { |file, line| "emacsclient #{file} +#{line}" }
|
150
|
-
# @example Callable waiting only if reloading
|
151
|
-
# Pry.config.editor = proc { |file, line, reloading| "subl #{'--wait' if reloading} #{file}:#{line}" }
|
152
|
-
# @return [String, #call]
|
153
|
-
attr_accessor :editor
|
154
|
-
|
155
|
-
# A string that must precede all Pry commands (e.g., if command_prefix is
|
156
|
-
# set to "%", the "cd" command must be invoked as "%cd").
|
157
|
-
# @return [String]
|
158
|
-
attr_accessor :command_prefix
|
159
|
-
|
160
|
-
# @return [Boolean] Toggle Pry color on and off.
|
161
|
-
attr_accessor :color
|
162
|
-
|
163
|
-
# @return [Boolean] Toggle paging on and off.
|
164
|
-
attr_accessor :pager
|
165
|
-
|
166
|
-
# Determines whether the rc file (~/.pryrc) should be loaded.
|
167
|
-
# @return [Boolean]
|
168
|
-
attr_accessor :should_load_rc
|
169
|
-
|
170
|
-
# Determines whether the local rc file (./.pryrc) should be loaded.
|
171
|
-
# @return [Boolean]
|
172
|
-
attr_accessor :should_load_local_rc
|
173
|
-
|
174
|
-
# Determines whether plugins should be loaded.
|
175
|
-
# @return [Boolean]
|
176
|
-
attr_accessor :should_load_plugins
|
177
|
-
|
178
|
-
# Determines whether to load files specified with the -r flag.
|
179
|
-
# @return [Boolean]
|
180
|
-
attr_accessor :should_load_requires
|
181
|
-
|
182
|
-
# Determines whether to disable edit-method's auto-reloading behavior.
|
183
|
-
# @return [Boolean]
|
184
|
-
attr_accessor :disable_auto_reload
|
185
|
-
|
186
|
-
# Determines whether Pry should trap SIGINT and cause it to raise an
|
187
|
-
# Interrupt exception. This is only useful on jruby, MRI does this
|
188
|
-
# for us.
|
189
|
-
# @return [Boolean]
|
190
|
-
attr_accessor :should_trap_interrupts
|
191
|
-
|
192
|
-
# Config option for history.
|
193
|
-
# sub-options include history.file, history.load, and history.save
|
194
|
-
# history.file is the file to save/load history to, e.g
|
195
|
-
# Pry.config.history.file = "~/.pry_history".
|
196
|
-
# history.should_load is a boolean that determines whether history will be
|
197
|
-
# loaded from history.file at session start.
|
198
|
-
# history.should_save is a boolean that determines whether history will be
|
199
|
-
# saved to history.file at session end.
|
200
|
-
# @return [OpenStruct]
|
201
|
-
attr_accessor :history
|
202
|
-
|
203
|
-
# Config option for plugins:
|
204
|
-
# sub-options include:
|
205
|
-
# `plugins.strict_loading` (Boolean) which toggles whether referring to a non-existent plugin should raise an exception (defaults to `false`)
|
206
|
-
# @return [OpenStruct]
|
207
|
-
attr_accessor :plugins
|
208
|
-
|
209
|
-
# @return [Array<String>] Ruby files to be required after loading any plugins.
|
210
|
-
attr_accessor :requires
|
211
|
-
|
212
|
-
# @return [Integer] Amount of results that will be stored into out
|
213
|
-
attr_accessor :memory_size
|
214
|
-
|
215
|
-
# @return [Proc] The proc that manages ^D presses in the REPL.
|
216
|
-
# The proc is passed the current eval_string and the current pry instance.
|
217
|
-
attr_accessor :control_d_handler
|
218
|
-
|
219
|
-
# @return [Proc] The proc that runs system commands
|
220
|
-
# The proc is passed the pry output object, the command string
|
221
|
-
# to eval, and a reference to the pry instance
|
222
|
-
attr_accessor :system
|
223
|
-
|
224
|
-
# @return [Boolean] Whether or not code should be indented
|
225
|
-
# using Pry::Indent.
|
226
|
-
attr_accessor :auto_indent
|
227
|
-
|
228
|
-
# @return [Boolean] Whether or not indentation should be corrected
|
229
|
-
# after hitting enter. This feature is not supported by all terminals.
|
230
|
-
attr_accessor :correct_indent
|
231
|
-
|
232
|
-
# @return [Boolean] Whether or not a warning will be displayed when
|
233
|
-
# a command name collides with a method/local in the current context.
|
234
|
-
attr_accessor :collision_warning
|
235
|
-
|
236
|
-
|
237
|
-
# Config option for gist.
|
238
|
-
# sub-options include `gist.inspecter`,
|
239
|
-
# `gist.inspecter` is a callable that defines how the expression output
|
240
|
-
# will be displayed when using the `gist -i` command.
|
241
|
-
# @example Pretty inspect output
|
242
|
-
# Pry.config.gist.inspecter = proc { |v| v.pretty_inspect }
|
243
|
-
# @example Regular inspect
|
244
|
-
# Pry.config.gist.inspecter = proc &:inspect
|
245
|
-
# @return [OpenStruct]
|
246
|
-
attr_accessor :gist
|
247
|
-
|
248
|
-
# @return [Hash] Additional sticky locals (to the standard ones) to use in Pry sessions.
|
249
|
-
# @example Inject `random_number` sticky local into Pry session
|
250
|
-
# Pry.config.extra_sticky_locals = { :random_number => proc {
|
251
|
-
# rand(10) } }
|
252
|
-
attr_accessor :extra_sticky_locals
|
253
|
-
|
254
|
-
# @return [#build_completion_proc] A completer to use.
|
255
|
-
attr_accessor :completer
|
256
23
|
end
|
257
24
|
end
|
258
|
-
|