class Object
Public Instance Methods
verify_final_method(meth, detect_type)
click to toggle source
# File lib/finalist.rb, line 6 def verify_final_method(meth, detect_type) super_method = meth.super_method while super_method if Finalist.finalized_methods[super_method.owner]&.member?(super_method.name) backtrace = caller(1) backtrace_start_pos = backtrace.rindex { |b| b.index(__FILE__) } backtrace = backtrace.drop(backtrace_start_pos + 1) raise Finalist::OverrideFinalMethodError.new( "#{super_method.owner}##{super_method.name} at #{super_method.source_location.join(":")} is overrided\n by #{meth.owner}##{meth.name} at #{meth.source_location.join(":")}", meth.owner, super_method.owner, meth, detect_type ).tap { |ex| ex.set_backtrace(backtrace) } end super_method = super_method.super_method end end