/usr/lib/ruby/vendor_ruby/pry/helpers/base_helpers.rb is in pry 0.10.3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | class Pry
module Helpers
module BaseHelpers
module_function
def silence_warnings
old_verbose = $VERBOSE
$VERBOSE = nil
begin
yield
ensure
$VERBOSE = old_verbose
end
end
# 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.
def safe_send(obj, method, *args, &block)
(Module === obj ? Module : Object).instance_method(method).bind(obj).call(*args, &block)
end
public :safe_send
def find_command(name, set = Pry::Commands)
command_match = set.find do |_, command|
(listing = command.options[:listing]) == name && listing != nil
end
command_match.last if command_match
end
def not_a_real_file?(file)
file =~ /(\(.*\))|<.*>/ || file =~ /__unknown__/ || file == "" || file == "-e"
end
def command_dependencies_met?(options)
return true if !options[:requires_gem]
Array(options[:requires_gem]).all? do |g|
Rubygem.installed?(g)
end
end
def use_ansi_codes?
windows_ansi? || ENV['TERM'] && ENV['TERM'] != "dumb"
end
def colorize_code(code)
CodeRay.scan(code, :ruby).term
end
def highlight(string, regexp, highlight_color=:bright_yellow)
string.gsub(regexp) { |match| "<#{highlight_color}>#{match}</#{highlight_color}>" }
end
# formatting
def heading(text)
text = "#{text}\n--"
"\e[1m#{text}\e[0m"
end
# have fun on the Windows platform.
def windows?
RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
end
# are we able to use ansi on windows?
def windows_ansi?
defined?(Win32::Console) || ENV['ANSICON'] || (windows? && mri_2?)
end
def jruby?
RbConfig::CONFIG['ruby_install_name'] == 'jruby'
end
def jruby_19?
jruby? && RbConfig::CONFIG['ruby_version'] == '1.9'
end
def rbx?
RbConfig::CONFIG['ruby_install_name'] == 'rbx'
end
def mri?
RbConfig::CONFIG['ruby_install_name'] == 'ruby'
end
def mri_19?
mri? && RUBY_VERSION =~ /^1\.9/
end
def mri_2?
mri? && RUBY_VERSION =~ /^2/
end
def mri_20?
mri? && RUBY_VERSION =~ /^2\.0/
end
def mri_21?
mri? && RUBY_VERSION =~ /^2\.1/
end
# 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.
def stagger_output(text, out = nil)
Pry.new.pager.page text
end
end
end
end
|