Module: Pry::Helpers::BaseHelpers
- Included in:
- Command, Command::Cat::AbstractFormatter, Command::FindMethod, Command::ShowInfo, CommandSet, Editor, Indent, Method, Method, WrappedModule
- Defined in:
- lib/pry/helpers/base_helpers.rb
Class Method Summary collapse
- .colorize_code(code) ⇒ Object
- .command_dependencies_met?(options) ⇒ Boolean
- .find_command(name, set = Pry::Commands) ⇒ Object
-
.heading(text) ⇒ Object
formatting.
- .highlight(string, regexp, highlight_color = :bright_yellow) ⇒ Object
- .jruby? ⇒ Boolean
- .jruby_19? ⇒ Boolean
- .mri? ⇒ Boolean
- .mri_19? ⇒ Boolean
- .mri_20? ⇒ Boolean
- .mri_21? ⇒ Boolean
- .mri_2? ⇒ Boolean
- .not_a_real_file?(file) ⇒ Boolean
- .rbx? ⇒ Boolean
-
.safe_send(obj, method, *args, &block) ⇒ Object
Acts like send but ignores any methods defined below Object or Class in the inheritance hierarchy.
- .silence_warnings ⇒ Object
-
.stagger_output(text, out = nil) ⇒ Object
Send the given text through the best available pager (if Pry.config.pager is enabled).
- .use_ansi_codes? ⇒ Boolean
-
.windows? ⇒ Boolean
have fun on the Windows platform.
-
.windows_ansi? ⇒ Boolean
are we able to use ansi on windows?.
Instance Method Summary collapse
-
#safe_send(obj, method, *args, &block) ⇒ Object
Acts like send but ignores any methods defined below Object or Class in the inheritance hierarchy.
Class Method Details
.colorize_code(code) ⇒ Object
49 50 51 |
# File 'lib/pry/helpers/base_helpers.rb', line 49 def colorize_code(code) CodeRay.scan(code, :ruby).term end |
.command_dependencies_met?(options) ⇒ Boolean
38 39 40 41 42 43 |
# File 'lib/pry/helpers/base_helpers.rb', line 38 def command_dependencies_met?() return true if ![:requires_gem] Array([:requires_gem]).all? do |g| Rubygem.installed?(g) end end |
.find_command(name, set = Pry::Commands) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/pry/helpers/base_helpers.rb', line 27 def find_command(name, set = Pry::Commands) command_match = set.find do |_, command| (listing = command.[:listing]) == name && listing != nil end command_match.last if command_match end |
.heading(text) ⇒ Object
formatting
58 59 60 61 |
# File 'lib/pry/helpers/base_helpers.rb', line 58 def heading(text) text = "#{text}\n--" "\e[1m#{text}\e[0m" end |
.highlight(string, regexp, highlight_color = :bright_yellow) ⇒ Object
53 54 55 |
# File 'lib/pry/helpers/base_helpers.rb', line 53 def highlight(string, regexp, highlight_color=:bright_yellow) string.gsub(regexp) { |match| "<#{highlight_color}>#{match}</#{highlight_color}>" } end |
.jruby? ⇒ Boolean
73 74 75 |
# File 'lib/pry/helpers/base_helpers.rb', line 73 def jruby? RbConfig::CONFIG['ruby_install_name'] == 'jruby' end |
.jruby_19? ⇒ Boolean
77 78 79 |
# File 'lib/pry/helpers/base_helpers.rb', line 77 def jruby_19? jruby? && RbConfig::CONFIG['ruby_version'] == '1.9' end |
.mri? ⇒ Boolean
85 86 87 |
# File 'lib/pry/helpers/base_helpers.rb', line 85 def mri? RbConfig::CONFIG['ruby_install_name'] == 'ruby' end |
.mri_19? ⇒ Boolean
89 90 91 |
# File 'lib/pry/helpers/base_helpers.rb', line 89 def mri_19? mri? && RUBY_VERSION =~ /^1\.9/ end |
.mri_20? ⇒ Boolean
97 98 99 |
# File 'lib/pry/helpers/base_helpers.rb', line 97 def mri_20? mri? && RUBY_VERSION =~ /^2\.0/ end |
.mri_21? ⇒ Boolean
101 102 103 |
# File 'lib/pry/helpers/base_helpers.rb', line 101 def mri_21? mri? && RUBY_VERSION =~ /^2\.1/ end |
.mri_2? ⇒ Boolean
93 94 95 |
# File 'lib/pry/helpers/base_helpers.rb', line 93 def mri_2? mri? && RUBY_VERSION =~ /^2/ end |
.not_a_real_file?(file) ⇒ Boolean
34 35 36 |
# File 'lib/pry/helpers/base_helpers.rb', line 34 def not_a_real_file?(file) file =~ /(\(.*\))|<.*>/ || file =~ /__unknown__/ || file == "" || file == "-e" end |
.rbx? ⇒ Boolean
81 82 83 |
# File 'lib/pry/helpers/base_helpers.rb', line 81 def rbx? RbConfig::CONFIG['ruby_install_name'] == 'rbx' end |
.safe_send(obj, method, *args, &block) ⇒ Object
Acts like send but ignores any methods defined below Object or Class in the inheritance hierarchy. This is required to introspect methods on objects like Net::HTTP::Get that have overridden the ‘method` method.
22 23 24 |
# File 'lib/pry/helpers/base_helpers.rb', line 22 def safe_send(obj, method, *args, &block) (Module === obj ? Module : Object).instance_method(method).bind(obj).call(*args, &block) end |
.silence_warnings ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/pry/helpers/base_helpers.rb', line 8 def silence_warnings old_verbose = $VERBOSE $VERBOSE = nil begin yield ensure $VERBOSE = old_verbose end end |
.stagger_output(text, out = nil) ⇒ Object
Send the given text through the best available pager (if Pry.config.pager is enabled). Infers where to send the output if used as a mixin. DEPRECATED.
108 109 110 |
# File 'lib/pry/helpers/base_helpers.rb', line 108 def stagger_output(text, out = nil) Pry.new.pager.page text end |
.use_ansi_codes? ⇒ Boolean
45 46 47 |
# File 'lib/pry/helpers/base_helpers.rb', line 45 def use_ansi_codes? windows_ansi? || ENV['TERM'] && ENV['TERM'] != "dumb" end |
.windows? ⇒ Boolean
have fun on the Windows platform.
64 65 66 |
# File 'lib/pry/helpers/base_helpers.rb', line 64 def windows? RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ end |
.windows_ansi? ⇒ Boolean
are we able to use ansi on windows?
69 70 71 |
# File 'lib/pry/helpers/base_helpers.rb', line 69 def windows_ansi? defined?(Win32::Console) || ENV['ANSICON'] || (windows? && mri_2?) end |
Instance Method Details
#safe_send(obj, method, *args, &block) ⇒ Object
Acts like send but ignores any methods defined below Object or Class in the inheritance hierarchy. This is required to introspect methods on objects like Net::HTTP::Get that have overridden the ‘method` method.
22 23 24 |
# File 'lib/pry/helpers/base_helpers.rb', line 22 def safe_send(obj, method, *args, &block) (Module === obj ? Module : Object).instance_method(method).bind(obj).call(*args, &block) end |