pry 0.12.2-java → 0.13.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +110 -1
- data/LICENSE +1 -1
- data/README.md +331 -269
- data/bin/pry +5 -0
- data/lib/pry.rb +133 -119
- data/lib/pry/basic_object.rb +8 -4
- data/lib/pry/block_command.rb +22 -0
- data/lib/pry/class_command.rb +194 -0
- data/lib/pry/cli.rb +40 -31
- data/lib/pry/code.rb +39 -27
- data/lib/pry/code/code_file.rb +28 -24
- data/lib/pry/code/code_range.rb +4 -2
- data/lib/pry/code/loc.rb +15 -8
- data/lib/pry/code_object.rb +40 -38
- data/lib/pry/color_printer.rb +47 -46
- data/lib/pry/command.rb +166 -369
- data/lib/pry/command_set.rb +76 -73
- data/lib/pry/command_state.rb +31 -0
- data/lib/pry/commands/amend_line.rb +86 -81
- data/lib/pry/commands/bang.rb +18 -14
- data/lib/pry/commands/bang_pry.rb +15 -11
- data/lib/pry/commands/cat.rb +61 -54
- data/lib/pry/commands/cat/abstract_formatter.rb +23 -18
- data/lib/pry/commands/cat/exception_formatter.rb +71 -60
- data/lib/pry/commands/cat/file_formatter.rb +55 -49
- data/lib/pry/commands/cat/input_expression_formatter.rb +35 -30
- data/lib/pry/commands/cd.rb +40 -35
- data/lib/pry/commands/change_inspector.rb +29 -22
- data/lib/pry/commands/change_prompt.rb +44 -39
- data/lib/pry/commands/clear_screen.rb +16 -10
- data/lib/pry/commands/code_collector.rb +148 -133
- data/lib/pry/commands/disable_pry.rb +23 -19
- data/lib/pry/commands/easter_eggs.rb +19 -30
- data/lib/pry/commands/edit.rb +184 -161
- data/lib/pry/commands/edit/exception_patcher.rb +21 -17
- data/lib/pry/commands/edit/file_and_line_locator.rb +34 -23
- data/lib/pry/commands/exit.rb +39 -35
- data/lib/pry/commands/exit_all.rb +24 -20
- data/lib/pry/commands/exit_program.rb +20 -16
- data/lib/pry/commands/find_method.rb +168 -160
- data/lib/pry/commands/fix_indent.rb +16 -12
- data/lib/pry/commands/help.rb +140 -133
- data/lib/pry/commands/hist.rb +151 -150
- data/lib/pry/commands/import_set.rb +20 -16
- data/lib/pry/commands/jump_to.rb +25 -21
- data/lib/pry/commands/list_inspectors.rb +35 -28
- data/lib/pry/commands/ls.rb +124 -102
- data/lib/pry/commands/ls/constants.rb +59 -42
- data/lib/pry/commands/ls/formatter.rb +50 -46
- data/lib/pry/commands/ls/globals.rb +38 -34
- data/lib/pry/commands/ls/grep.rb +17 -13
- data/lib/pry/commands/ls/instance_vars.rb +29 -27
- data/lib/pry/commands/ls/interrogatable.rb +18 -12
- data/lib/pry/commands/ls/jruby_hacks.rb +47 -41
- data/lib/pry/commands/ls/local_names.rb +26 -22
- data/lib/pry/commands/ls/local_vars.rb +38 -28
- data/lib/pry/commands/ls/ls_entity.rb +47 -51
- data/lib/pry/commands/ls/methods.rb +44 -43
- data/lib/pry/commands/ls/methods_helper.rb +46 -42
- data/lib/pry/commands/ls/self_methods.rb +23 -22
- data/lib/pry/commands/nesting.rb +21 -17
- data/lib/pry/commands/play.rb +93 -82
- data/lib/pry/commands/pry_backtrace.rb +24 -17
- data/lib/pry/commands/pry_version.rb +15 -11
- data/lib/pry/commands/raise_up.rb +27 -22
- data/lib/pry/commands/reload_code.rb +60 -48
- data/lib/pry/commands/reset.rb +16 -12
- data/lib/pry/commands/ri.rb +55 -45
- data/lib/pry/commands/save_file.rb +45 -43
- data/lib/pry/commands/shell_command.rb +51 -51
- data/lib/pry/commands/shell_mode.rb +21 -17
- data/lib/pry/commands/show_doc.rb +81 -68
- data/lib/pry/commands/show_info.rb +189 -171
- data/lib/pry/commands/show_input.rb +16 -11
- data/lib/pry/commands/show_source.rb +109 -45
- data/lib/pry/commands/stat.rb +35 -31
- data/lib/pry/commands/switch_to.rb +21 -15
- data/lib/pry/commands/toggle_color.rb +20 -16
- data/lib/pry/commands/watch_expression.rb +89 -86
- data/lib/pry/commands/watch_expression/expression.rb +32 -27
- data/lib/pry/commands/whereami.rb +156 -148
- data/lib/pry/commands/wtf.rb +75 -50
- data/lib/pry/config.rb +311 -25
- 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/control_d_handler.rb +28 -0
- data/lib/pry/core_extensions.rb +9 -7
- data/lib/pry/editor.rb +48 -21
- data/lib/pry/env.rb +18 -0
- data/lib/pry/exception_handler.rb +43 -0
- data/lib/pry/exceptions.rb +13 -16
- data/lib/pry/forwardable.rb +5 -1
- data/lib/pry/helpers.rb +2 -0
- data/lib/pry/helpers/base_helpers.rb +68 -197
- data/lib/pry/helpers/command_helpers.rb +50 -61
- data/lib/pry/helpers/documentation_helpers.rb +20 -13
- data/lib/pry/helpers/options_helpers.rb +14 -7
- data/lib/pry/helpers/platform.rb +7 -5
- data/lib/pry/helpers/table.rb +33 -26
- data/lib/pry/helpers/text.rb +17 -14
- data/lib/pry/history.rb +48 -56
- data/lib/pry/hooks.rb +21 -12
- data/lib/pry/indent.rb +54 -50
- data/lib/pry/input_completer.rb +248 -230
- data/lib/pry/input_lock.rb +8 -9
- data/lib/pry/inspector.rb +36 -24
- data/lib/pry/last_exception.rb +45 -45
- data/lib/pry/method.rb +141 -94
- data/lib/pry/method/disowned.rb +16 -4
- data/lib/pry/method/patcher.rb +12 -3
- data/lib/pry/method/weird_method_locator.rb +68 -44
- data/lib/pry/object_path.rb +33 -25
- data/lib/pry/output.rb +121 -35
- data/lib/pry/pager.rb +41 -42
- data/lib/pry/plugins.rb +25 -8
- data/lib/pry/prompt.rb +123 -54
- data/lib/pry/pry_class.rb +61 -98
- data/lib/pry/pry_instance.rb +217 -215
- data/lib/pry/repl.rb +18 -22
- data/lib/pry/repl_file_loader.rb +27 -21
- data/lib/pry/ring.rb +11 -6
- data/lib/pry/slop.rb +574 -563
- data/lib/pry/slop/commands.rb +164 -169
- data/lib/pry/slop/option.rb +172 -168
- data/lib/pry/syntax_highlighter.rb +26 -0
- data/lib/pry/system_command_handler.rb +17 -0
- data/lib/pry/testable.rb +59 -61
- data/lib/pry/testable/evalable.rb +21 -12
- data/lib/pry/testable/mockable.rb +18 -10
- data/lib/pry/testable/pry_tester.rb +71 -56
- data/lib/pry/testable/utility.rb +29 -21
- data/lib/pry/testable/variables.rb +49 -43
- data/lib/pry/version.rb +3 -1
- data/lib/pry/warning.rb +27 -0
- data/lib/pry/wrapped_module.rb +51 -42
- data/lib/pry/wrapped_module/candidate.rb +21 -14
- metadata +31 -30
- data/lib/pry/commands.rb +0 -6
- 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 -32
- data/lib/pry/commands/gem_list.rb +0 -33
- data/lib/pry/commands/gem_open.rb +0 -29
- data/lib/pry/commands/gem_readme.rb +0 -25
- data/lib/pry/commands/gem_search.rb +0 -40
- data/lib/pry/commands/gem_stats.rb +0 -83
- data/lib/pry/commands/gist.rb +0 -102
- data/lib/pry/commands/install_command.rb +0 -54
- data/lib/pry/config/behavior.rb +0 -255
- data/lib/pry/config/convenience.rb +0 -28
- data/lib/pry/config/default.rb +0 -159
- data/lib/pry/config/memoization.rb +0 -48
- data/lib/pry/platform.rb +0 -91
- data/lib/pry/rubygem.rb +0 -84
- data/lib/pry/terminal.rb +0 -91
data/lib/pry/platform.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
class Pry
|
2
|
-
module Platform
|
3
|
-
extend self
|
4
|
-
|
5
|
-
#
|
6
|
-
# @return [Boolean]
|
7
|
-
# Returns true if Pry is running on Mac OSX.
|
8
|
-
#
|
9
|
-
# @note
|
10
|
-
# Queries RbConfig::CONFIG['host_os'] with a best guess.
|
11
|
-
#
|
12
|
-
def mac_osx?
|
13
|
-
!!(RbConfig::CONFIG['host_os'] =~ /\Adarwin/i)
|
14
|
-
end
|
15
|
-
|
16
|
-
#
|
17
|
-
# @return [Boolean]
|
18
|
-
# Returns true if Pry is running on Linux.
|
19
|
-
#
|
20
|
-
# @note
|
21
|
-
# Queries RbConfig::CONFIG['host_os'] with a best guess.
|
22
|
-
#
|
23
|
-
def linux?
|
24
|
-
!!(RbConfig::CONFIG['host_os'] =~ /linux/i)
|
25
|
-
end
|
26
|
-
|
27
|
-
#
|
28
|
-
# @return [Boolean]
|
29
|
-
# Returns true if Pry is running on Windows.
|
30
|
-
#
|
31
|
-
# @note
|
32
|
-
# Queries RbConfig::CONFIG['host_os'] with a best guess.
|
33
|
-
#
|
34
|
-
def windows?
|
35
|
-
!!(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/)
|
36
|
-
end
|
37
|
-
|
38
|
-
#
|
39
|
-
# @return [Boolean]
|
40
|
-
# Returns true when Pry is running on Windows with ANSI support.
|
41
|
-
#
|
42
|
-
def windows_ansi?
|
43
|
-
return false if not windows?
|
44
|
-
|
45
|
-
!!(defined?(Win32::Console) or ENV['ANSICON'] or mri_2?)
|
46
|
-
end
|
47
|
-
|
48
|
-
#
|
49
|
-
# @return [Boolean]
|
50
|
-
# Returns true when Pry is being run from JRuby.
|
51
|
-
#
|
52
|
-
def jruby?
|
53
|
-
RbConfig::CONFIG['ruby_install_name'] == 'jruby'
|
54
|
-
end
|
55
|
-
|
56
|
-
#
|
57
|
-
# @return [Boolean]
|
58
|
-
# Returns true when Pry is being run from JRuby in 1.9 mode.
|
59
|
-
#
|
60
|
-
def jruby_19?
|
61
|
-
jruby? and RbConfig::CONFIG['ruby_version'] == '1.9'
|
62
|
-
end
|
63
|
-
|
64
|
-
#
|
65
|
-
# @return [Boolean]
|
66
|
-
# Returns true when Pry is being run from MRI (CRuby).
|
67
|
-
#
|
68
|
-
def mri?
|
69
|
-
RbConfig::CONFIG['ruby_install_name'] == 'ruby'
|
70
|
-
end
|
71
|
-
|
72
|
-
#
|
73
|
-
# @return [Boolean]
|
74
|
-
# Returns true when Pry is being run from MRI v1.9+ (CRuby).
|
75
|
-
#
|
76
|
-
def mri_19?
|
77
|
-
!!(mri? and RUBY_VERSION =~ /\A1\.9/)
|
78
|
-
end
|
79
|
-
|
80
|
-
#
|
81
|
-
# @return [Boolean]
|
82
|
-
# Returns true when Pry is being run from MRI v2+ (CRuby).
|
83
|
-
#
|
84
|
-
def mri_2?
|
85
|
-
!!(mri? and RUBY_VERSION =~ /\A2/)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
# Not supported on MRI 2.2 and lower.
|
90
|
-
deprecate_constant(:Platform) if respond_to?(:deprecate_constant)
|
91
|
-
end
|
data/lib/pry/rubygem.rb
DELETED
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
|
3
|
-
class Pry
|
4
|
-
module Rubygem
|
5
|
-
|
6
|
-
class << self
|
7
|
-
def installed?(name)
|
8
|
-
if Gem::Specification.respond_to?(:find_all_by_name)
|
9
|
-
Gem::Specification.find_all_by_name(name).any?
|
10
|
-
else
|
11
|
-
Gem.source_index.find_name(name).first
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
# Get the gem spec object for the given gem name.
|
16
|
-
#
|
17
|
-
# @param [String] name
|
18
|
-
# @return [Gem::Specification]
|
19
|
-
def spec(name)
|
20
|
-
specs = if Gem::Specification.respond_to?(:each)
|
21
|
-
Gem::Specification.find_all_by_name(name)
|
22
|
-
else
|
23
|
-
Gem.source_index.find_name(name)
|
24
|
-
end
|
25
|
-
|
26
|
-
first_spec = specs.sort_by { |spec| Gem::Version.new(spec.version) }.last
|
27
|
-
|
28
|
-
first_spec or raise CommandError, "Gem `#{name}` not found"
|
29
|
-
end
|
30
|
-
|
31
|
-
# List gems matching a pattern.
|
32
|
-
#
|
33
|
-
# @param [Regexp] pattern
|
34
|
-
# @return [Array<Gem::Specification>]
|
35
|
-
def list(pattern = /.*/)
|
36
|
-
if Gem::Specification.respond_to?(:each)
|
37
|
-
Gem::Specification.select { |spec| spec.name =~ pattern }
|
38
|
-
else
|
39
|
-
Gem.source_index.gems.values.select { |spec| spec.name =~ pattern }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# Completion function for gem-cd and gem-open.
|
44
|
-
#
|
45
|
-
# @param [String] so_far what the user's typed so far
|
46
|
-
# @return [Array<String>] completions
|
47
|
-
def complete(so_far)
|
48
|
-
if so_far =~ / ([^ ]*)\z/
|
49
|
-
self.list(%r{\A#{$2}}).map(&:name)
|
50
|
-
else
|
51
|
-
self.list.map(&:name)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
# Installs a gem with all its dependencies.
|
56
|
-
#
|
57
|
-
# @param [String] name
|
58
|
-
# @return [void]
|
59
|
-
def install(name)
|
60
|
-
require 'rubygems/dependency_installer'
|
61
|
-
gem_config = Gem.configuration['gem']
|
62
|
-
gemrc_opts = (gem_config.nil? ? "" : gem_config.split(' '))
|
63
|
-
destination = if gemrc_opts.include?('--user-install')
|
64
|
-
Gem.user_dir
|
65
|
-
elsif File.writable?(Gem.dir)
|
66
|
-
Gem.dir
|
67
|
-
else
|
68
|
-
Gem.user_dir
|
69
|
-
end
|
70
|
-
installer = Gem::DependencyInstaller.new(install_dir: destination)
|
71
|
-
installer.install(name)
|
72
|
-
rescue Errno::EACCES
|
73
|
-
raise CommandError,
|
74
|
-
"Insufficient permissions to install #{green(name)}."
|
75
|
-
rescue Gem::GemNotFoundException
|
76
|
-
raise CommandError,
|
77
|
-
"Gem #{green(name)} not found. Aborting installation."
|
78
|
-
else
|
79
|
-
Gem.refresh
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
end
|
data/lib/pry/terminal.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
class Pry::Terminal
|
3
|
-
class << self
|
4
|
-
# Return a pair of [rows, columns] which gives the size of the window.
|
5
|
-
#
|
6
|
-
# If the window size cannot be determined, return nil.
|
7
|
-
def screen_size
|
8
|
-
rows, cols = actual_screen_size
|
9
|
-
if rows.to_i != 0 && cols.to_i != 0
|
10
|
-
[rows.to_i, cols.to_i]
|
11
|
-
else
|
12
|
-
nil
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# Return a screen size or a default if that fails.
|
17
|
-
def size! default = [27, 80]
|
18
|
-
screen_size || default
|
19
|
-
end
|
20
|
-
|
21
|
-
# Return a screen width or the default if that fails.
|
22
|
-
def width!
|
23
|
-
size![1]
|
24
|
-
end
|
25
|
-
|
26
|
-
# Return a screen height or the default if that fails.
|
27
|
-
def height!
|
28
|
-
size![0]
|
29
|
-
end
|
30
|
-
|
31
|
-
def actual_screen_size
|
32
|
-
# The best way, if possible (requires non-jruby ≥1.9 or io-console gem)
|
33
|
-
screen_size_according_to_io_console or
|
34
|
-
# Fall back to the old standby, though it might be stale:
|
35
|
-
screen_size_according_to_env or
|
36
|
-
# Fall further back, though this one is also out of date without something
|
37
|
-
# calling Readline.set_screen_size
|
38
|
-
screen_size_according_to_readline or
|
39
|
-
# Windows users can otherwise run ansicon and get a decent answer:
|
40
|
-
screen_size_according_to_ansicon_env
|
41
|
-
end
|
42
|
-
|
43
|
-
def screen_size_according_to_io_console
|
44
|
-
return if Pry::Helpers::Platform.jruby?
|
45
|
-
|
46
|
-
begin
|
47
|
-
require 'io/console'
|
48
|
-
|
49
|
-
begin
|
50
|
-
if $stdout.respond_to?(:tty?) && $stdout.tty? && $stdout.respond_to?(:winsize)
|
51
|
-
$stdout.winsize
|
52
|
-
end
|
53
|
-
rescue Errno::EOPNOTSUPP
|
54
|
-
# $stdout is probably a socket, which doesn't support #winsize.
|
55
|
-
end
|
56
|
-
rescue LoadError
|
57
|
-
# They probably don't have the io/console stdlib or the io-console gem.
|
58
|
-
# We'll keep trying.
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def screen_size_according_to_env
|
63
|
-
size = [ENV['LINES'] || ENV['ROWS'], ENV['COLUMNS']]
|
64
|
-
size if nonzero_column?(size)
|
65
|
-
end
|
66
|
-
|
67
|
-
def screen_size_according_to_readline
|
68
|
-
if defined?(Readline) && Readline.respond_to?(:get_screen_size)
|
69
|
-
size = Readline.get_screen_size
|
70
|
-
size if nonzero_column?(size)
|
71
|
-
end
|
72
|
-
rescue Java::JavaLang::NullPointerException
|
73
|
-
# This rescue won't happen on jrubies later than:
|
74
|
-
# https://github.com/jruby/jruby/pull/436
|
75
|
-
nil
|
76
|
-
end
|
77
|
-
|
78
|
-
def screen_size_according_to_ansicon_env
|
79
|
-
return unless ENV['ANSICON'] =~ /\((.*)x(.*)\)/
|
80
|
-
|
81
|
-
size = [$2, $1]
|
82
|
-
size if nonzero_column?(size)
|
83
|
-
end
|
84
|
-
|
85
|
-
private
|
86
|
-
|
87
|
-
def nonzero_column?(size)
|
88
|
-
size[1].to_i > 0
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|