[ruby/irb] Remove dead code (https://github.com/ruby/irb/pull/554)
* Remove unused ATTR_TTY and ATTR_PLAIN constants They were added ind7d26b51bf
But the references were removed in1c76845cca
Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com> * Remove unused MethodExtender module It was added in6cc5d718d7
but it's not used anywhere. Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com> * Remove unused IRB.irb_at_exit It's not used afteraaf4eb4e98
Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com> * Remove unused InputCompletor.ignored_modules It was added in88311ce3c8
but the reference was removed in78c74d2425
* Remove unused TracerLoadError constant This constant was added incb50fa3738
but never referenced. --------- https://github.com/ruby/irb/commit/7de0234325 Co-authored-by: Alexandre Terrasa <alexandre.terrasa@shopify.com>
This commit is contained in:
parent
9e1ff2462b
commit
f25791884c
10
lib/irb.rb
10
lib/irb.rb
@ -416,11 +416,6 @@ module IRB
|
||||
irb.run(@CONF)
|
||||
end
|
||||
|
||||
# Calls each event hook of <code>IRB.conf[:AT_EXIT]</code> when the current session quits.
|
||||
def IRB.irb_at_exit
|
||||
@CONF[:AT_EXIT].each{|hook| hook.call}
|
||||
end
|
||||
|
||||
# Quits irb
|
||||
def IRB.irb_exit(irb, ret)
|
||||
throw :IRB_EXIT, ret
|
||||
@ -897,11 +892,6 @@ module IRB
|
||||
ensure
|
||||
$VERBOSE = verbose
|
||||
end
|
||||
|
||||
ATTR_TTY = "\e[%sm"
|
||||
def ATTR_TTY.[](*a) self % a.join(";"); end
|
||||
ATTR_PLAIN = ""
|
||||
def ATTR_PLAIN.[](*) self; end
|
||||
end
|
||||
|
||||
def @CONF.inspect
|
||||
|
@ -450,30 +450,5 @@ module IRB
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.ignored_modules
|
||||
# We could cache the result, but this is very fast already.
|
||||
# By using this approach, we avoid Module#name calls, which are
|
||||
# relatively slow when there are a lot of anonymous modules defined.
|
||||
s = {}
|
||||
|
||||
scanner = lambda do |m|
|
||||
next if s.include?(m) # IRB::ExtendCommandBundle::EXCB recurses.
|
||||
s[m] = true
|
||||
m.constants(false).each do |c|
|
||||
value = m.const_get(c)
|
||||
scanner.call(value) if value.is_a?(Module)
|
||||
end
|
||||
end
|
||||
|
||||
%i(IRB RubyLex).each do |sym|
|
||||
next unless Object.const_defined?(sym)
|
||||
scanner.call(Object.const_get(sym))
|
||||
end
|
||||
|
||||
s.delete(IRB::Context) if defined?(IRB::Context)
|
||||
|
||||
s
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -9,7 +9,6 @@ begin
|
||||
rescue LoadError
|
||||
$stderr.puts "Tracer extension of IRB is enabled but tracer gem doesn't found."
|
||||
module IRB
|
||||
TracerLoadError = true
|
||||
class Context
|
||||
def use_tracer=(opt)
|
||||
# do nothing
|
||||
|
@ -371,58 +371,4 @@ module IRB # :nodoc:
|
||||
|
||||
CE.install_extend_commands
|
||||
end
|
||||
|
||||
# A convenience module for extending Ruby methods.
|
||||
module MethodExtender
|
||||
# Extends the given +base_method+ with a prefix call to the given
|
||||
# +extend_method+.
|
||||
def def_pre_proc(base_method, extend_method)
|
||||
base_method = base_method.to_s
|
||||
extend_method = extend_method.to_s
|
||||
|
||||
alias_name = new_alias_name(base_method)
|
||||
module_eval %[
|
||||
alias_method alias_name, base_method
|
||||
def #{base_method}(*opts)
|
||||
__send__ :#{extend_method}, *opts
|
||||
__send__ :#{alias_name}, *opts
|
||||
end
|
||||
]
|
||||
end
|
||||
|
||||
# Extends the given +base_method+ with a postfix call to the given
|
||||
# +extend_method+.
|
||||
def def_post_proc(base_method, extend_method)
|
||||
base_method = base_method.to_s
|
||||
extend_method = extend_method.to_s
|
||||
|
||||
alias_name = new_alias_name(base_method)
|
||||
module_eval %[
|
||||
alias_method alias_name, base_method
|
||||
def #{base_method}(*opts)
|
||||
__send__ :#{alias_name}, *opts
|
||||
__send__ :#{extend_method}, *opts
|
||||
end
|
||||
]
|
||||
end
|
||||
|
||||
# Returns a unique method name to use as an alias for the given +name+.
|
||||
#
|
||||
# Usually returns <code>#{prefix}#{name}#{postfix}<num></code>, example:
|
||||
#
|
||||
# new_alias_name('foo') #=> __alias_of__foo__
|
||||
# def bar; end
|
||||
# new_alias_name('bar') #=> __alias_of__bar__2
|
||||
def new_alias_name(name, prefix = "__alias_of__", postfix = "__")
|
||||
base_name = "#{prefix}#{name}#{postfix}"
|
||||
all_methods = instance_methods(true) + private_instance_methods(true)
|
||||
same_methods = all_methods.grep(/^#{Regexp.quote(base_name)}[0-9]*$/)
|
||||
return base_name if same_methods.empty?
|
||||
no = same_methods.size
|
||||
while !same_methods.include?(alias_name = base_name + no)
|
||||
no += 1
|
||||
end
|
||||
alias_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user