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
@@ -1,31 +1,32 @@
|
|
1
1
|
class Pry
|
2
2
|
class Command::Cat
|
3
3
|
class FileFormatter < AbstractFormatter
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
attr_reader :file_with_embedded_line
|
5
|
+
attr_reader :opts
|
6
|
+
attr_reader :_pry_
|
7
7
|
|
8
8
|
def initialize(file_with_embedded_line, _pry_, opts)
|
9
9
|
@file_with_embedded_line = file_with_embedded_line
|
10
10
|
@opts = opts
|
11
11
|
@_pry_ = _pry_
|
12
|
+
@code_from_file = Pry::Code.from_file(file_name)
|
12
13
|
end
|
13
14
|
|
14
15
|
def format
|
15
16
|
raise CommandError, "Must provide a filename, --in, or --ex." if !file_with_embedded_line
|
16
17
|
|
17
18
|
set_file_and_dir_locals(file_name, _pry_, _pry_.current_context)
|
18
|
-
decorate(
|
19
|
+
decorate(@code_from_file)
|
19
20
|
end
|
20
21
|
|
21
|
-
private
|
22
|
-
|
23
22
|
def file_and_line
|
24
|
-
file_name, line_num = file_with_embedded_line.split(
|
23
|
+
file_name, line_num = file_with_embedded_line.split(/:(?!\/|\\)/)
|
25
24
|
|
26
|
-
[
|
25
|
+
[file_name, line_num ? line_num.to_i : nil]
|
27
26
|
end
|
28
27
|
|
28
|
+
private
|
29
|
+
|
29
30
|
def file_name
|
30
31
|
file_and_line.first
|
31
32
|
end
|
@@ -35,7 +36,7 @@ class Pry
|
|
35
36
|
end
|
36
37
|
|
37
38
|
def code_window_size
|
38
|
-
|
39
|
+
_pry_.config.default_window_size || 7
|
39
40
|
end
|
40
41
|
|
41
42
|
def decorate(content)
|
@@ -47,36 +48,18 @@ class Pry
|
|
47
48
|
end
|
48
49
|
|
49
50
|
def detect_code_type_from_file(file_name)
|
50
|
-
|
51
|
+
code_type = @code_from_file.code_type
|
51
52
|
|
52
|
-
if
|
53
|
-
|
54
|
-
when "py"
|
55
|
-
:python
|
56
|
-
when "rb", "gemspec", "rakefile", "ru", "pryrc", "irbrc"
|
57
|
-
:ruby
|
58
|
-
when "js"
|
59
|
-
return :javascript
|
60
|
-
when "yml", "prytheme"
|
61
|
-
:yaml
|
62
|
-
when "groovy"
|
63
|
-
:groovy
|
64
|
-
when "c"
|
65
|
-
:c
|
66
|
-
when "cpp"
|
67
|
-
:cpp
|
68
|
-
when "java"
|
69
|
-
:java
|
70
|
-
else
|
71
|
-
:text
|
72
|
-
end
|
73
|
-
else
|
53
|
+
if code_type == :unknown
|
54
|
+
name, ext = File.basename(file_name).split('.', 2)
|
74
55
|
case name
|
75
56
|
when "Rakefile", "Gemfile"
|
76
57
|
:ruby
|
77
58
|
else
|
78
59
|
:text
|
79
60
|
end
|
61
|
+
else
|
62
|
+
code_type
|
80
63
|
end
|
81
64
|
end
|
82
65
|
end
|
data/lib/pry/commands/cd.rb
CHANGED
@@ -9,7 +9,7 @@ class Pry
|
|
9
9
|
|
10
10
|
Move into new context (object or scope). As in UNIX shells use `cd ..` to go
|
11
11
|
back, `cd /` to return to Pry top-level and `cd -` to toggle between last two
|
12
|
-
scopes. Complex syntax (e.g `cd ../@x
|
12
|
+
scopes. Complex syntax (e.g `cd ../@x/@y`) also supported.
|
13
13
|
|
14
14
|
cd @x
|
15
15
|
cd ..
|
@@ -21,8 +21,19 @@ class Pry
|
|
21
21
|
|
22
22
|
def process
|
23
23
|
state.old_stack ||= []
|
24
|
-
|
25
|
-
|
24
|
+
|
25
|
+
if arg_string.strip == "-"
|
26
|
+
unless state.old_stack.empty?
|
27
|
+
_pry_.binding_stack, state.old_stack = state.old_stack, _pry_.binding_stack
|
28
|
+
end
|
29
|
+
else
|
30
|
+
stack = ObjectPath.new(arg_string, _pry_.binding_stack).resolve
|
31
|
+
|
32
|
+
if stack && stack != _pry_.binding_stack
|
33
|
+
state.old_stack = _pry_.binding_stack
|
34
|
+
_pry_.binding_stack = stack
|
35
|
+
end
|
36
|
+
end
|
26
37
|
end
|
27
38
|
end
|
28
39
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Pry::Command::ChangeInspector < Pry::ClassCommand
|
2
|
+
match 'change-inspector'
|
3
|
+
group 'Input and Output'
|
4
|
+
description 'Change the current inspector proc.'
|
5
|
+
command_options argument_required: true
|
6
|
+
banner <<-BANNER
|
7
|
+
Usage: change-inspector NAME
|
8
|
+
|
9
|
+
Change the proc used to print return values. See list-inspectors for a list
|
10
|
+
of available procs and a short description of what each one does.
|
11
|
+
BANNER
|
12
|
+
|
13
|
+
def process(inspector)
|
14
|
+
if inspector_map.key?(inspector)
|
15
|
+
_pry_.print = inspector_map[inspector][:value]
|
16
|
+
output.puts "Switched to the '#{inspector}' inspector!"
|
17
|
+
else
|
18
|
+
raise Pry::CommandError, "'#{inspector}' isn't a known inspector!"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def inspector_map
|
24
|
+
Pry::Inspector::MAP
|
25
|
+
end
|
26
|
+
Pry::Commands.add_command(self)
|
27
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class Pry::Command::ChangePrompt < Pry::ClassCommand
|
2
|
+
match 'change-prompt'
|
3
|
+
group 'Input and Output'
|
4
|
+
description 'Change the current prompt.'
|
5
|
+
command_options argument_required: true
|
6
|
+
banner <<-BANNER
|
7
|
+
Usage: change-prompt NAME
|
8
|
+
|
9
|
+
Change the current prompt. See list-prompts for a list of available
|
10
|
+
prompts.
|
11
|
+
BANNER
|
12
|
+
|
13
|
+
def process(prompt)
|
14
|
+
if prompt_map.key?(prompt)
|
15
|
+
_pry_.prompt = prompt_map[prompt][:value]
|
16
|
+
else
|
17
|
+
raise Pry::CommandError, "'#{prompt}' isn't a known prompt!"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
def prompt_map
|
23
|
+
Pry::Prompt::MAP
|
24
|
+
end
|
25
|
+
Pry::Commands.add_command(self)
|
26
|
+
end
|
@@ -2,9 +2,9 @@ class Pry
|
|
2
2
|
class Command::CodeCollector
|
3
3
|
include Helpers::CommandHelpers
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
attr_reader :args
|
6
|
+
attr_reader :opts
|
7
|
+
attr_reader :_pry_
|
8
8
|
|
9
9
|
# The name of the explicitly given file (if any).
|
10
10
|
attr_accessor :file
|
@@ -91,7 +91,7 @@ class Pry
|
|
91
91
|
# @return [String]
|
92
92
|
def pry_output_content
|
93
93
|
pry_array_content_as_string(_pry_.output_array, self.class.output_result_ranges) do |v|
|
94
|
-
|
94
|
+
_pry_.config.gist.inspecter.call(v)
|
95
95
|
end
|
96
96
|
end
|
97
97
|
|
@@ -83,8 +83,8 @@ TEXT
|
|
83
83
|
end
|
84
84
|
|
85
85
|
command "test-ansi", "" do
|
86
|
-
prev_color =
|
87
|
-
|
86
|
+
prev_color = _pry_.config.color
|
87
|
+
_pry_.config.color = true
|
88
88
|
|
89
89
|
picture = unindent <<-'EOS'.gsub(/[[:alpha:]!]/) { |s| text.red(s) }
|
90
90
|
____ _______________________
|
@@ -106,7 +106,7 @@ TEXT
|
|
106
106
|
output.puts "\n" * 6
|
107
107
|
output.puts "** ENV['TERM'] is #{ENV['TERM']} **\n\n"
|
108
108
|
|
109
|
-
|
109
|
+
_pry_.config.color = prev_color
|
110
110
|
end
|
111
111
|
end
|
112
112
|
end
|
data/lib/pry/commands/edit.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
class Pry
|
2
2
|
class Command::Edit < Pry::ClassCommand
|
3
|
-
require 'pry/commands/edit/method_patcher'
|
4
3
|
require 'pry/commands/edit/exception_patcher'
|
5
4
|
require 'pry/commands/edit/file_and_line_locator'
|
6
5
|
|
@@ -13,7 +12,7 @@ class Pry
|
|
13
12
|
|
14
13
|
Open a text editor. When no FILE is given, edits the pry input buffer.
|
15
14
|
When a method/module/command is given, the code is opened in an editor.
|
16
|
-
Ensure `Pry.config.editor` is set to your editor of choice.
|
15
|
+
Ensure `Pry.config.editor` or `_pry_.config.editor` is set to your editor of choice.
|
17
16
|
|
18
17
|
edit sample.rb edit -p MyClass#my_method
|
19
18
|
edit sample.rb --line 105 edit MyClass
|
@@ -31,7 +30,7 @@ class Pry
|
|
31
30
|
opt.on :t, :temp, "Open an empty temporary file"
|
32
31
|
opt.on :l, :line, "Jump to this line in the opened file",
|
33
32
|
:argument => true, :as => Integer
|
34
|
-
opt.on :n, :"no-reload", "Don't automatically reload the edited
|
33
|
+
opt.on :n, :"no-reload", "Don't automatically reload the edited file"
|
35
34
|
opt.on :c, :current, "Open the current __FILE__ and at __LINE__ (as returned by `whereami`)"
|
36
35
|
opt.on :r, :reload, "Reload the edited code immediately (default for ruby files)"
|
37
36
|
opt.on :p, :patch, "Instead of editing the object's file, try to edit in a tempfile and apply as a monkey patch"
|
@@ -61,12 +60,10 @@ class Pry
|
|
61
60
|
end
|
62
61
|
|
63
62
|
def repl_edit
|
64
|
-
content = Pry::Editor.edit_tempfile_with_content(initial_temp_file_content,
|
63
|
+
content = Pry::Editor.new(_pry_).edit_tempfile_with_content(initial_temp_file_content,
|
65
64
|
initial_temp_file_content.lines.count)
|
66
|
-
|
67
|
-
|
68
|
-
eval_string.replace content
|
69
|
-
end
|
65
|
+
silence_warnings do
|
66
|
+
eval_string.replace content
|
70
67
|
end
|
71
68
|
end
|
72
69
|
|
@@ -83,7 +80,7 @@ class Pry
|
|
83
80
|
ExceptionPatcher.new(_pry_, state, file_and_line_for_current_exception).perform_patch
|
84
81
|
else
|
85
82
|
if code_object.is_a?(Pry::Method)
|
86
|
-
|
83
|
+
code_object.redefine Pry::Editor.new(_pry_).edit_tempfile_with_content(code_object.source)
|
87
84
|
else
|
88
85
|
raise NotImplementedError, "Cannot yet patch #{code_object} objects!"
|
89
86
|
end
|
@@ -119,12 +116,12 @@ class Pry
|
|
119
116
|
|
120
117
|
ensure_file_name_is_valid(file_name)
|
121
118
|
|
122
|
-
Pry::Editor.invoke_editor(file_name, line, reload?(file_name))
|
119
|
+
Pry::Editor.new(_pry_).invoke_editor(file_name, line, reload?(file_name))
|
123
120
|
set_file_and_dir_locals(file_name)
|
124
121
|
|
125
122
|
if reload?(file_name)
|
126
123
|
silence_warnings do
|
127
|
-
|
124
|
+
load file_name
|
128
125
|
end
|
129
126
|
end
|
130
127
|
end
|
@@ -168,12 +165,7 @@ class Pry
|
|
168
165
|
end
|
169
166
|
|
170
167
|
def never_reload?
|
171
|
-
opts.present?(:'no-reload') ||
|
172
|
-
end
|
173
|
-
|
174
|
-
# conditions much less strict than for reload? (which is for file-based reloads)
|
175
|
-
def repl_reload?
|
176
|
-
!never_reload?
|
168
|
+
opts.present?(:'no-reload') || _pry_.config.disable_auto_reload
|
177
169
|
end
|
178
170
|
|
179
171
|
def reload?(file_name="")
|
@@ -194,13 +186,9 @@ class Pry
|
|
194
186
|
end
|
195
187
|
|
196
188
|
def probably_a_file?(str)
|
197
|
-
[".rb", ".c", ".py", ".yml", ".gemspec"].include?
|
189
|
+
[".rb", ".c", ".py", ".yml", ".gemspec"].include?(File.extname(str)) ||
|
198
190
|
str =~ /\/|\\/
|
199
191
|
end
|
200
|
-
|
201
|
-
def complete(search)
|
202
|
-
super + Bond::Rc.files(search.split(" ").last || '')
|
203
|
-
end
|
204
192
|
end
|
205
193
|
|
206
194
|
Pry::Commands.add_command(Pry::Command::Edit)
|
@@ -13,10 +13,10 @@ class Pry
|
|
13
13
|
|
14
14
|
# perform the patch
|
15
15
|
def perform_patch
|
16
|
-
file_name,
|
16
|
+
file_name, _ = file_and_line
|
17
17
|
lines = state.dynamical_ex_file || File.read(file_name)
|
18
18
|
|
19
|
-
source = Pry::Editor.edit_tempfile_with_content(lines)
|
19
|
+
source = Pry::Editor.new(_pry_).edit_tempfile_with_content(lines)
|
20
20
|
_pry_.evaluate_ruby source
|
21
21
|
state.dynamical_ex_file = source.split("\n")
|
22
22
|
end
|
@@ -21,8 +21,6 @@ class Pry
|
|
21
21
|
raise CommandError, "Exception has no associated file." if file_name.nil?
|
22
22
|
raise CommandError, "Cannot edit exceptions raised in REPL." if Pry.eval_path == file_name
|
23
23
|
|
24
|
-
file_name = RbxPath.convert_path_to_full(file_name) if RbxPath.is_core_path?(file_name)
|
25
|
-
|
26
24
|
[file_name, line]
|
27
25
|
end
|
28
26
|
|
@@ -6,8 +6,6 @@ class Pry
|
|
6
6
|
group 'Context'
|
7
7
|
description 'Recursively search for a method within a Class/Module or the current namespace.'
|
8
8
|
command_options :shellwords => false
|
9
|
-
command_options :requires_gem => 'ruby18_source_location' if mri_18?
|
10
|
-
|
11
9
|
|
12
10
|
banner <<-'BANNER'
|
13
11
|
Usage: find-method [-n|-c] METHOD [NAMESPACE]
|
@@ -26,13 +24,9 @@ class Pry
|
|
26
24
|
find-method -c 'output.puts' Pry
|
27
25
|
BANNER
|
28
26
|
|
29
|
-
def
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
def options(opti)
|
34
|
-
opti.on :n, :name, "Search for a method by name"
|
35
|
-
opti.on :c, :content, "Search for a method based on content in Regex form"
|
27
|
+
def options(opt)
|
28
|
+
opt.on :n, :name, "Search for a method by name"
|
29
|
+
opt.on :c, :content, "Search for a method based on content in Regex form"
|
36
30
|
end
|
37
31
|
|
38
32
|
def process
|
@@ -82,7 +76,7 @@ class Pry
|
|
82
76
|
|
83
77
|
# pretty-print a list of matching methods.
|
84
78
|
#
|
85
|
-
# @param Array
|
79
|
+
# @param [Array<Method>] matches
|
86
80
|
def print_matches(matches)
|
87
81
|
grouped = matches.group_by(&:owner)
|
88
82
|
order = grouped.keys.sort_by{ |x| x.name || x.to_s }
|
@@ -105,7 +99,7 @@ class Pry
|
|
105
99
|
# if `-c` was not given
|
106
100
|
def additional_info(header, method)
|
107
101
|
if opts.content?
|
108
|
-
": "
|
102
|
+
": " << colorize_code(matched_method_lines(header, method))
|
109
103
|
else
|
110
104
|
""
|
111
105
|
end
|
@@ -117,9 +111,9 @@ class Pry
|
|
117
111
|
|
118
112
|
# Run the given block against every constant in the provided namespace.
|
119
113
|
#
|
120
|
-
# @param Module
|
121
|
-
# @param Hash
|
122
|
-
# @yieldparam
|
114
|
+
# @param [Module] klass The namespace in which to start the search.
|
115
|
+
# @param [Hash<Module,Boolean>] done The namespaces we've already visited (private)
|
116
|
+
# @yieldparam klass Each class/module in the namespace.
|
123
117
|
#
|
124
118
|
def recurse_namespace(klass, done={}, &block)
|
125
119
|
return if !(Module === klass) || done[klass]
|
@@ -145,10 +139,10 @@ class Pry
|
|
145
139
|
|
146
140
|
# Gather all the methods in a namespace that pass the given block.
|
147
141
|
#
|
148
|
-
# @param Module
|
149
|
-
# @yieldparam Method
|
150
|
-
# @yieldreturn Boolean
|
151
|
-
# @return Array
|
142
|
+
# @param [Module] namespace The namespace in which to search.
|
143
|
+
# @yieldparam [Method] method The method to test
|
144
|
+
# @yieldreturn [Boolean]
|
145
|
+
# @return [Array<Method>]
|
152
146
|
#
|
153
147
|
def search_all_methods(namespace)
|
154
148
|
done = Hash.new{ |h,k| h[k] = {} }
|
@@ -169,8 +163,8 @@ class Pry
|
|
169
163
|
# Search for all methods with a name that matches the given regex
|
170
164
|
# within a namespace.
|
171
165
|
#
|
172
|
-
# @param Module
|
173
|
-
# @return Array
|
166
|
+
# @param [Module] namespace The namespace to search
|
167
|
+
# @return [Array<Method>]
|
174
168
|
#
|
175
169
|
def name_search(namespace)
|
176
170
|
search_all_methods(namespace) do |meth|
|
@@ -181,8 +175,8 @@ class Pry
|
|
181
175
|
# Search for all methods who's implementation matches the given regex
|
182
176
|
# within a namespace.
|
183
177
|
#
|
184
|
-
# @param Module
|
185
|
-
# @return Array
|
178
|
+
# @param [Module] namespace The namespace to search
|
179
|
+
# @return [Array<Method>]
|
186
180
|
#
|
187
181
|
def content_search(namespace)
|
188
182
|
search_all_methods(namespace) do |meth|
|
@@ -8,8 +8,8 @@ class Pry
|
|
8
8
|
banner <<-'BANNER'
|
9
9
|
Usage: gem-install GEM_NAME
|
10
10
|
|
11
|
-
Installs the given gem
|
12
|
-
|
11
|
+
Installs the given gem, refreshes the gem cache, and requires the gem for you
|
12
|
+
based on a best guess from the gem name.
|
13
13
|
|
14
14
|
gem-install pry-stack_explorer
|
15
15
|
BANNER
|
@@ -22,6 +22,9 @@ class Pry
|
|
22
22
|
Rubygem.install(gem)
|
23
23
|
output.puts "Gem `#{ text.green(gem) }` installed."
|
24
24
|
require gem
|
25
|
+
rescue LoadError
|
26
|
+
require_path = gem.split('-').join('/')
|
27
|
+
require require_path
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|