class Unused::MethodAliasListener
Constants
- ESSENTIAL_METHODS
- ESSENTIAL_METHODS_TO_DEFINE
Public Class Methods
alias_pattern(method_name)
click to toggle source
# File lib/unused/method_alias_listener.rb, line 35 def self.alias_pattern(method_name) "_#{method_name}_UNUSED_ALIAS_" end
new()
click to toggle source
# File lib/unused/method_alias_listener.rb, line 23 def initialize @trace = define_tracepoint end
Public Instance Methods
disable()
click to toggle source
# File lib/unused/method_alias_listener.rb, line 31 def disable @trace.disable end
enable()
click to toggle source
# File lib/unused/method_alias_listener.rb, line 27 def enable @trace.enable end
Private Instance Methods
alias_essential_methods(defined_obj)
click to toggle source
Calls superclass method
# File lib/unused/method_alias_listener.rb, line 49 def alias_essential_methods(defined_obj) ESSENTIAL_METHODS.each do |method| alias_name = self.class.alias_pattern(method) defined_obj.alias_method(alias_name, method) defined_obj.singleton_class.alias_method(alias_name, method) end ESSENTIAL_METHODS_TO_DEFINE.each do |method| alias_name = self.class.alias_pattern(method) defined_obj.define_method(method) { |*args| super(*args) } defined_obj.singleton_class.define_method(method) { |*args| super(*args) } defined_obj.alias_method(alias_name, method) defined_obj.singleton_class.alias_method(alias_name, method) defined_obj.remove_method(method) defined_obj.singleton_class.remove_method(method) end end
define_tracepoint()
click to toggle source
# File lib/unused/method_alias_listener.rb, line 41 def define_tracepoint TracePoint.new(:class) do |tp| if tp.path.start_with?(Unused.config.path) alias_essential_methods(tp.self) end end end