pry 0.10.2-i386-mswin32 → 1.0.0.pre1-i386-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +2 -0
- data/.gitignore +16 -0
- data/.travis.yml +21 -0
- data/.yardopts +3 -0
- data/CHANGELOG +503 -0
- data/CONTRIBUTORS +55 -0
- data/Gemfile +9 -0
- data/Guardfile +62 -0
- data/LICENSE +2 -2
- data/{README.md → README.markdown} +31 -37
- data/Rakefile +144 -0
- data/TODO +117 -0
- data/lib/pry.rb +146 -33
- data/lib/pry/cli.rb +13 -35
- data/lib/pry/code.rb +63 -24
- data/lib/pry/code/loc.rb +2 -2
- data/lib/pry/code_object.rb +21 -40
- data/lib/pry/command.rb +6 -9
- data/lib/pry/command_set.rb +37 -80
- data/lib/pry/commands.rb +1 -1
- data/lib/pry/commands/amend_line.rb +1 -1
- data/lib/pry/commands/bang.rb +1 -1
- data/lib/pry/commands/cat.rb +2 -11
- data/lib/pry/commands/cat/abstract_formatter.rb +1 -1
- data/lib/pry/commands/cat/exception_formatter.rb +7 -6
- data/lib/pry/commands/cat/file_formatter.rb +32 -15
- data/lib/pry/commands/cat/input_expression_formatter.rb +1 -1
- data/lib/pry/commands/cd.rb +3 -14
- data/lib/pry/commands/code_collector.rb +4 -4
- data/lib/pry/commands/easter_eggs.rb +3 -3
- data/lib/pry/commands/edit.rb +22 -10
- data/lib/pry/commands/edit/exception_patcher.rb +1 -1
- data/lib/pry/commands/edit/file_and_line_locator.rb +2 -0
- data/lib/pry/{method/patcher.rb → commands/edit/method_patcher.rb} +37 -40
- data/lib/pry/commands/find_method.rb +22 -16
- data/lib/pry/commands/gem_install.rb +2 -5
- data/lib/pry/commands/gem_open.rb +1 -1
- data/lib/pry/commands/gist.rb +11 -10
- data/lib/pry/commands/help.rb +14 -14
- data/lib/pry/commands/hist.rb +5 -24
- data/lib/pry/commands/ls.rb +287 -56
- data/lib/pry/commands/play.rb +10 -44
- data/lib/pry/commands/pry_backtrace.rb +2 -1
- data/lib/pry/commands/raise_up.rb +1 -1
- data/lib/pry/commands/reload_code.rb +15 -31
- data/lib/pry/commands/ri.rb +3 -7
- data/lib/pry/commands/shell_command.rb +12 -17
- data/lib/pry/commands/shell_mode.rb +2 -2
- data/lib/pry/commands/show_doc.rb +0 -5
- data/lib/pry/commands/show_info.rb +10 -11
- data/lib/pry/commands/show_source.rb +3 -15
- data/lib/pry/commands/simple_prompt.rb +1 -1
- data/lib/pry/commands/toggle_color.rb +4 -8
- data/lib/pry/commands/whereami.rb +10 -18
- data/lib/pry/completion.rb +293 -0
- data/lib/pry/config.rb +233 -20
- data/lib/pry/core_extensions.rb +19 -29
- data/lib/pry/custom_completions.rb +6 -0
- data/lib/pry/editor.rb +103 -109
- data/lib/pry/helpers/base_helpers.rb +109 -22
- data/lib/pry/helpers/command_helpers.rb +8 -10
- data/lib/pry/helpers/documentation_helpers.rb +2 -1
- data/lib/pry/helpers/text.rb +5 -4
- data/lib/pry/history.rb +10 -21
- data/lib/pry/history_array.rb +0 -5
- data/lib/pry/hooks.rb +29 -9
- data/lib/pry/indent.rb +10 -5
- data/lib/pry/method.rb +86 -81
- data/lib/pry/method/weird_method_locator.rb +2 -4
- data/lib/pry/module_candidate.rb +14 -5
- data/lib/pry/pager.rb +48 -193
- data/lib/pry/plugins.rb +2 -2
- data/lib/pry/pry_class.rb +193 -104
- data/lib/pry/pry_instance.rb +154 -152
- data/lib/pry/rbx_method.rb +13 -0
- data/lib/pry/rbx_path.rb +1 -1
- data/lib/pry/repl.rb +14 -17
- data/lib/pry/repl_file_loader.rb +3 -8
- data/lib/pry/rubygem.rb +3 -3
- data/lib/pry/terminal.rb +3 -4
- data/lib/pry/test/helper.rb +11 -6
- data/lib/pry/version.rb +1 -1
- data/lib/pry/wrapped_module.rb +56 -49
- data/man/pry.1 +195 -0
- data/man/pry.1.html +204 -0
- data/man/pry.1.ronn +141 -0
- data/pry.gemspec +31 -0
- data/spec/Procfile +3 -0
- data/spec/cli_spec.rb +78 -0
- data/spec/code_object_spec.rb +277 -0
- data/spec/code_spec.rb +219 -0
- data/spec/command_helpers_spec.rb +29 -0
- data/spec/command_integration_spec.rb +562 -0
- data/spec/command_set_spec.rb +627 -0
- data/spec/command_spec.rb +821 -0
- data/spec/commands/amend_line_spec.rb +247 -0
- data/spec/commands/bang_spec.rb +18 -0
- data/spec/commands/cat_spec.rb +164 -0
- data/spec/commands/cd_spec.rb +250 -0
- data/spec/commands/disable_pry_spec.rb +25 -0
- data/spec/commands/edit_spec.rb +725 -0
- data/spec/commands/exit_all_spec.rb +27 -0
- data/spec/commands/exit_program_spec.rb +19 -0
- data/spec/commands/exit_spec.rb +28 -0
- data/spec/commands/find_method_spec.rb +70 -0
- data/spec/commands/gem_list_spec.rb +26 -0
- data/spec/commands/gist_spec.rb +79 -0
- data/spec/commands/help_spec.rb +56 -0
- data/spec/commands/hist_spec.rb +172 -0
- data/spec/commands/jump_to_spec.rb +15 -0
- data/spec/commands/ls_spec.rb +189 -0
- data/spec/commands/play_spec.rb +136 -0
- data/spec/commands/raise_up_spec.rb +56 -0
- data/spec/commands/save_file_spec.rb +177 -0
- data/spec/commands/show_doc_spec.rb +488 -0
- data/spec/commands/show_input_spec.rb +17 -0
- data/spec/commands/show_source_spec.rb +760 -0
- data/spec/commands/whereami_spec.rb +203 -0
- data/spec/completion_spec.rb +221 -0
- data/spec/control_d_handler_spec.rb +62 -0
- data/spec/documentation_helper_spec.rb +73 -0
- data/spec/editor_spec.rb +79 -0
- data/spec/exception_whitelist_spec.rb +21 -0
- data/spec/fixtures/candidate_helper1.rb +11 -0
- data/spec/fixtures/candidate_helper2.rb +8 -0
- data/spec/fixtures/example.erb +5 -0
- data/spec/fixtures/example_nesting.rb +33 -0
- data/spec/fixtures/show_source_doc_examples.rb +15 -0
- data/spec/fixtures/testlinkrc +2 -0
- data/spec/fixtures/testrc +2 -0
- data/spec/fixtures/testrcbad +2 -0
- data/spec/fixtures/whereami_helper.rb +6 -0
- data/spec/helper.rb +35 -0
- data/spec/helpers/bacon.rb +86 -0
- data/spec/helpers/mock_pry.rb +44 -0
- data/spec/helpers/repl_tester.rb +112 -0
- data/spec/helpers/table_spec.rb +105 -0
- data/spec/history_array_spec.rb +67 -0
- data/spec/hooks_spec.rb +522 -0
- data/spec/indent_spec.rb +301 -0
- data/spec/method_spec.rb +482 -0
- data/spec/prompt_spec.rb +61 -0
- data/spec/pry_defaults_spec.rb +420 -0
- data/spec/pry_history_spec.rb +69 -0
- data/spec/pry_output_spec.rb +95 -0
- data/spec/pry_repl_spec.rb +86 -0
- data/spec/pry_spec.rb +394 -0
- data/spec/pryrc_spec.rb +97 -0
- data/spec/run_command_spec.rb +25 -0
- data/spec/sticky_locals_spec.rb +147 -0
- data/spec/syntax_checking_spec.rb +81 -0
- data/spec/wrapped_module_spec.rb +261 -0
- data/wiki/Customizing-pry.md +397 -0
- data/wiki/Home.md +4 -0
- metadata +272 -61
- checksums.yaml +0 -7
- data/CHANGELOG.md +0 -714
- data/lib/pry/code/code_file.rb +0 -103
- data/lib/pry/color_printer.rb +0 -55
- data/lib/pry/commands/change_inspector.rb +0 -27
- data/lib/pry/commands/change_prompt.rb +0 -26
- data/lib/pry/commands/list_inspectors.rb +0 -35
- data/lib/pry/commands/list_prompts.rb +0 -35
- data/lib/pry/commands/ls/constants.rb +0 -47
- data/lib/pry/commands/ls/formatter.rb +0 -49
- data/lib/pry/commands/ls/globals.rb +0 -48
- data/lib/pry/commands/ls/grep.rb +0 -21
- data/lib/pry/commands/ls/instance_vars.rb +0 -39
- data/lib/pry/commands/ls/interrogatable.rb +0 -18
- data/lib/pry/commands/ls/jruby_hacks.rb +0 -49
- data/lib/pry/commands/ls/local_names.rb +0 -35
- data/lib/pry/commands/ls/local_vars.rb +0 -39
- data/lib/pry/commands/ls/ls_entity.rb +0 -70
- data/lib/pry/commands/ls/methods.rb +0 -57
- data/lib/pry/commands/ls/methods_helper.rb +0 -46
- data/lib/pry/commands/ls/self_methods.rb +0 -32
- data/lib/pry/commands/watch_expression.rb +0 -105
- data/lib/pry/commands/watch_expression/expression.rb +0 -38
- data/lib/pry/config/behavior.rb +0 -139
- data/lib/pry/config/convenience.rb +0 -25
- data/lib/pry/config/default.rb +0 -161
- data/lib/pry/exceptions.rb +0 -78
- data/lib/pry/input_completer.rb +0 -242
- data/lib/pry/input_lock.rb +0 -132
- data/lib/pry/inspector.rb +0 -27
- data/lib/pry/last_exception.rb +0 -61
- data/lib/pry/object_path.rb +0 -82
- data/lib/pry/output.rb +0 -50
- data/lib/pry/prompt.rb +0 -26
data/lib/pry/code/code_file.rb
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
class Pry
|
2
|
-
class CodeFile
|
3
|
-
DEFAULT_EXT = '.rb'
|
4
|
-
|
5
|
-
# List of all supported languages.
|
6
|
-
# @return [Hash]
|
7
|
-
EXTENSIONS = {
|
8
|
-
%w(.py) => :python,
|
9
|
-
%w(.js) => :javascript,
|
10
|
-
%w(.css) => :css,
|
11
|
-
%w(.xml) => :xml,
|
12
|
-
%w(.php) => :php,
|
13
|
-
%w(.html) => :html,
|
14
|
-
%w(.diff) => :diff,
|
15
|
-
%w(.java) => :java,
|
16
|
-
%w(.json) => :json,
|
17
|
-
%w(.c .h) => :c,
|
18
|
-
%w(.rhtml) => :rhtml,
|
19
|
-
%w(.yaml .yml) => :yaml,
|
20
|
-
%w(.cpp .hpp .cc .h cxx) => :cpp,
|
21
|
-
%w(.rb .ru .irbrc .gemspec .pryrc) => :ruby,
|
22
|
-
}
|
23
|
-
|
24
|
-
# @return [Symbol] The type of code stored in this wrapper.
|
25
|
-
attr_reader :code_type
|
26
|
-
|
27
|
-
# @param [String] filename The name of a file with code to be detected
|
28
|
-
# @param [Symbol] code_type The type of code the `filename` contains
|
29
|
-
def initialize(filename, code_type = type_from_filename(filename))
|
30
|
-
@filename = filename
|
31
|
-
@code_type = code_type
|
32
|
-
end
|
33
|
-
|
34
|
-
# @return [String] The code contained in the current `@filename`.
|
35
|
-
def code
|
36
|
-
if @filename == Pry.eval_path
|
37
|
-
Pry.line_buffer.drop(1)
|
38
|
-
elsif Pry::Method::Patcher.code_for(@filename)
|
39
|
-
Pry::Method::Patcher.code_for(@filename)
|
40
|
-
elsif RbxPath.is_core_path?(@filename)
|
41
|
-
File.read(RbxPath.convert_path_to_full(@filename))
|
42
|
-
else
|
43
|
-
path = abs_path
|
44
|
-
@code_type = type_from_filename(path)
|
45
|
-
File.read(path)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
# @raise [MethodSource::SourceNotFoundError] if the `filename` is not
|
52
|
-
# readable for some reason.
|
53
|
-
# @return [String] absolute path for the given `filename`.
|
54
|
-
def abs_path
|
55
|
-
code_path.detect { |path| readable?(path) } or
|
56
|
-
raise MethodSource::SourceNotFoundError,
|
57
|
-
"Cannot open #{ @filename.inspect } for reading."
|
58
|
-
end
|
59
|
-
|
60
|
-
# @param [String] path
|
61
|
-
# @return [Boolean] if the path, with or without the default ext,
|
62
|
-
# is a readable file then `true`, otherwise `false`.
|
63
|
-
def readable?(path)
|
64
|
-
File.readable?(path) && !File.directory?(path) or
|
65
|
-
File.readable?(path << DEFAULT_EXT)
|
66
|
-
end
|
67
|
-
|
68
|
-
# @return [Array] All the paths that contain code that Pry can use for its
|
69
|
-
# API's. Skips directories.
|
70
|
-
def code_path
|
71
|
-
[from_pwd, from_pry_init_pwd, *from_load_path]
|
72
|
-
end
|
73
|
-
|
74
|
-
# @param [String] filename
|
75
|
-
# @param [Symbol] default (:unknown) the file type to assume if none could be
|
76
|
-
# detected.
|
77
|
-
# @return [Symbol, nil] The CodeRay type of a file from its extension, or
|
78
|
-
# `nil` if `:unknown`.
|
79
|
-
def type_from_filename(filename, default = :unknown)
|
80
|
-
_, @code_type = EXTENSIONS.find do |k, _|
|
81
|
-
k.any? { |ext| ext == File.extname(filename) }
|
82
|
-
end
|
83
|
-
|
84
|
-
code_type || default
|
85
|
-
end
|
86
|
-
|
87
|
-
# @return [String]
|
88
|
-
def from_pwd
|
89
|
-
File.expand_path(@filename, Dir.pwd)
|
90
|
-
end
|
91
|
-
|
92
|
-
# @return [String]
|
93
|
-
def from_pry_init_pwd
|
94
|
-
File.expand_path(@filename, Pry::INITIAL_PWD)
|
95
|
-
end
|
96
|
-
|
97
|
-
# @return [String]
|
98
|
-
def from_load_path
|
99
|
-
$LOAD_PATH.map { |path| File.expand_path(@filename, path) }
|
100
|
-
end
|
101
|
-
|
102
|
-
end
|
103
|
-
end
|
data/lib/pry/color_printer.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
# PP subclass for streaming inspect output in color.
|
2
|
-
class Pry
|
3
|
-
class ColorPrinter < ::PP
|
4
|
-
OBJ_COLOR = begin
|
5
|
-
code = CodeRay::Encoders::Terminal::TOKEN_COLORS[:keyword]
|
6
|
-
if code.start_with? "\e"
|
7
|
-
code
|
8
|
-
else
|
9
|
-
"\e[0m\e[0;#{code}m"
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
CodeRay::Encoders::Terminal::TOKEN_COLORS[:comment][:self] = "\e[1;34m"
|
14
|
-
|
15
|
-
def self.pp(obj, out = $>, width = 79)
|
16
|
-
q = ColorPrinter.new(out, width)
|
17
|
-
q.guard_inspect_key { q.pp obj }
|
18
|
-
q.flush
|
19
|
-
out << "\n"
|
20
|
-
end
|
21
|
-
|
22
|
-
def text(str, width = str.length)
|
23
|
-
# Don't recolorize output with color [Issue #751]
|
24
|
-
if str.include?("\e[")
|
25
|
-
super "#{str}\e[0m", width
|
26
|
-
elsif str.start_with?('#<') || str == '=' || str == '>'
|
27
|
-
super highlight_object_literal(str), width
|
28
|
-
else
|
29
|
-
super CodeRay.scan(str, :ruby).term, width
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def pp(obj)
|
34
|
-
super
|
35
|
-
rescue => e
|
36
|
-
raise if e.is_a? Pry::Pager::StopPaging
|
37
|
-
|
38
|
-
# Read the class name off of the singleton class to provide a default
|
39
|
-
# inspect.
|
40
|
-
singleton = class << obj; self; end
|
41
|
-
ancestors = Pry::Method.safe_send(singleton, :ancestors)
|
42
|
-
klass = ancestors.reject { |k| k == singleton }.first
|
43
|
-
obj_id = obj.__id__.to_s(16) rescue 0
|
44
|
-
str = "#<#{klass}:0x#{obj_id}>"
|
45
|
-
|
46
|
-
text highlight_object_literal(str)
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def highlight_object_literal(object_literal)
|
52
|
-
"#{OBJ_COLOR}#{object_literal}\e[0m"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,27 +0,0 @@
|
|
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
|
@@ -1,26 +0,0 @@
|
|
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
|
@@ -1,35 +0,0 @@
|
|
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
|
7
|
-
|
8
|
-
List the inspector procs available to print return values. You can use
|
9
|
-
change-inspector to switch between them.
|
10
|
-
BANNER
|
11
|
-
|
12
|
-
def process
|
13
|
-
output.puts heading("Available inspectors") + "\n"
|
14
|
-
inspector_map.each do |name, inspector|
|
15
|
-
output.write "Name: #{text.bold(name)}"
|
16
|
-
output.puts selected_inspector?(inspector) ? selected_text : ""
|
17
|
-
output.puts inspector[:description]
|
18
|
-
output.puts
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
def inspector_map
|
24
|
-
Pry::Inspector::MAP
|
25
|
-
end
|
26
|
-
|
27
|
-
def selected_text
|
28
|
-
text.red " (selected) "
|
29
|
-
end
|
30
|
-
|
31
|
-
def selected_inspector?(inspector)
|
32
|
-
_pry_.print == inspector[:value]
|
33
|
-
end
|
34
|
-
Pry::Commands.add_command(self)
|
35
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
class Pry::Command::ListPrompts < Pry::ClassCommand
|
2
|
-
match 'list-prompts'
|
3
|
-
group 'Input and Output'
|
4
|
-
description 'List the prompts available for use.'
|
5
|
-
banner <<-BANNER
|
6
|
-
Usage: list-prompts
|
7
|
-
|
8
|
-
List the available prompts. You can use change-prompt to switch between
|
9
|
-
them.
|
10
|
-
BANNER
|
11
|
-
|
12
|
-
def process
|
13
|
-
output.puts heading("Available prompts") + "\n"
|
14
|
-
prompt_map.each do |name, prompt|
|
15
|
-
output.write "Name: #{text.bold(name)}"
|
16
|
-
output.puts selected_prompt?(prompt) ? selected_text : ""
|
17
|
-
output.puts prompt[:description]
|
18
|
-
output.puts
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
def prompt_map
|
24
|
-
Pry::Prompt::MAP
|
25
|
-
end
|
26
|
-
|
27
|
-
def selected_text
|
28
|
-
text.red " (selected) "
|
29
|
-
end
|
30
|
-
|
31
|
-
def selected_prompt?(prompt)
|
32
|
-
_pry_.prompt == prompt[:value]
|
33
|
-
end
|
34
|
-
Pry::Commands.add_command(self)
|
35
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'pry/commands/ls/interrogatable'
|
2
|
-
|
3
|
-
class Pry
|
4
|
-
class Command::Ls < Pry::ClassCommand
|
5
|
-
class Constants < Pry::Command::Ls::Formatter
|
6
|
-
include Pry::Command::Ls::Interrogatable
|
7
|
-
|
8
|
-
|
9
|
-
def initialize(interrogatee, no_user_opts, opts, _pry_)
|
10
|
-
super(_pry_)
|
11
|
-
@interrogatee = interrogatee
|
12
|
-
@no_user_opts = no_user_opts
|
13
|
-
@default_switch = opts[:constants]
|
14
|
-
@verbose_switch = opts[:verbose]
|
15
|
-
end
|
16
|
-
|
17
|
-
def correct_opts?
|
18
|
-
super || (@no_user_opts && interrogating_a_module?)
|
19
|
-
end
|
20
|
-
|
21
|
-
def output_self
|
22
|
-
mod = interrogatee_mod
|
23
|
-
constants = WrappedModule.new(mod).constants(@verbose_switch)
|
24
|
-
output_section('constants', grep.regexp[format(mod, constants)])
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def format(mod, constants)
|
30
|
-
constants.sort_by(&:downcase).map do |name|
|
31
|
-
if const = (!mod.autoload?(name) && (mod.const_get(name) || true) rescue nil)
|
32
|
-
if (const < Exception rescue false)
|
33
|
-
color(:exception_constant, name)
|
34
|
-
elsif (Module === mod.const_get(name) rescue false)
|
35
|
-
color(:class_constant, name)
|
36
|
-
else
|
37
|
-
color(:constant, name)
|
38
|
-
end
|
39
|
-
else
|
40
|
-
color(:unloaded_constant, name)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
class Pry
|
2
|
-
class Command::Ls < Pry::ClassCommand
|
3
|
-
class Formatter
|
4
|
-
attr_writer :grep
|
5
|
-
attr_reader :_pry_
|
6
|
-
|
7
|
-
def initialize(_pry_)
|
8
|
-
@_pry_ = _pry_
|
9
|
-
@target = _pry_.current_context
|
10
|
-
end
|
11
|
-
|
12
|
-
def write_out
|
13
|
-
return false unless correct_opts?
|
14
|
-
output_self
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
def color(type, str)
|
20
|
-
Pry::Helpers::Text.send _pry_.config.ls["#{type}_color"], str
|
21
|
-
end
|
22
|
-
|
23
|
-
# Add a new section to the output.
|
24
|
-
# Outputs nothing if the section would be empty.
|
25
|
-
def output_section(heading, body)
|
26
|
-
return '' if body.compact.empty?
|
27
|
-
fancy_heading = Pry::Helpers::Text.bold(color(:heading, heading))
|
28
|
-
Pry::Helpers.tablify_or_one_line(fancy_heading, body)
|
29
|
-
end
|
30
|
-
|
31
|
-
def format_value(value)
|
32
|
-
Pry::ColorPrinter.pp(value, '')
|
33
|
-
end
|
34
|
-
|
35
|
-
def correct_opts?
|
36
|
-
@default_switch
|
37
|
-
end
|
38
|
-
|
39
|
-
def output_self
|
40
|
-
raise NotImplementedError
|
41
|
-
end
|
42
|
-
|
43
|
-
def grep
|
44
|
-
@grep || proc { |x| x }
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
class Pry
|
2
|
-
class Command::Ls < Pry::ClassCommand
|
3
|
-
class Globals < Pry::Command::Ls::Formatter
|
4
|
-
|
5
|
-
# Taken from "puts global_variables.inspect".
|
6
|
-
BUILTIN_GLOBALS =
|
7
|
-
%w($" $$ $* $, $-0 $-F $-I $-K $-W $-a $-d $-i $-l $-p $-v $-w $. $/ $\\
|
8
|
-
$: $; $< $= $> $0 $ARGV $CONSOLE $DEBUG $DEFAULT_INPUT $DEFAULT_OUTPUT
|
9
|
-
$FIELD_SEPARATOR $FILENAME $FS $IGNORECASE $INPUT_LINE_NUMBER
|
10
|
-
$INPUT_RECORD_SEPARATOR $KCODE $LOADED_FEATURES $LOAD_PATH $NR $OFS
|
11
|
-
$ORS $OUTPUT_FIELD_SEPARATOR $OUTPUT_RECORD_SEPARATOR $PID $PROCESS_ID
|
12
|
-
$PROGRAM_NAME $RS $VERBOSE $deferr $defout $stderr $stdin $stdout)
|
13
|
-
|
14
|
-
# `$SAFE` and `$?` are thread-local, the exception stuff only works in a
|
15
|
-
# rescue clause, everything else is basically a local variable with a `$`
|
16
|
-
# in its name.
|
17
|
-
PSEUDO_GLOBALS =
|
18
|
-
%w($! $' $& $` $@ $? $+ $_ $~ $1 $2 $3 $4 $5 $6 $7 $8 $9
|
19
|
-
$CHILD_STATUS $SAFE $ERROR_INFO $ERROR_POSITION $LAST_MATCH_INFO
|
20
|
-
$LAST_PAREN_MATCH $LAST_READ_LINE $MATCH $POSTMATCH $PREMATCH)
|
21
|
-
|
22
|
-
def initialize(opts, _pry_)
|
23
|
-
super(_pry_)
|
24
|
-
@default_switch = opts[:globals]
|
25
|
-
end
|
26
|
-
|
27
|
-
def output_self
|
28
|
-
variables = format(@target.eval('global_variables'))
|
29
|
-
output_section('global variables', grep.regexp[variables])
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
|
34
|
-
def format(globals)
|
35
|
-
globals.map(&:to_s).sort_by(&:downcase).map do |name|
|
36
|
-
if PSEUDO_GLOBALS.include?(name)
|
37
|
-
color(:pseudo_global, name)
|
38
|
-
elsif BUILTIN_GLOBALS.include?(name)
|
39
|
-
color(:builtin_global, name)
|
40
|
-
else
|
41
|
-
color(:global_var, name)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
data/lib/pry/commands/ls/grep.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
class Pry
|
2
|
-
class Command::Ls < Pry::ClassCommand
|
3
|
-
class Grep
|
4
|
-
|
5
|
-
def initialize(grep_regexp)
|
6
|
-
@grep_regexp = grep_regexp
|
7
|
-
end
|
8
|
-
|
9
|
-
def regexp
|
10
|
-
proc { |x|
|
11
|
-
if x.instance_of?(Array)
|
12
|
-
x.grep(@grep_regexp)
|
13
|
-
else
|
14
|
-
x =~ @grep_regexp
|
15
|
-
end
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|