Silence method redefinition warnings

As the community progressively moves to a useful practice of enabling
ruby warnings on tests, knowingly redefining a method produces a
distracting warning that has to be special-cased when running automated
tests. We thus skip dynamic definitions of methods we know will be
redefined right after.
This commit is contained in:
Loic Nageleisen authored and Yorick Peterse committed 2017-09-07 00:03:36 +02:00
1 parent 151788abad
commit 39bf7ffaeb
1 file changed
+18 -14
+18 -14
View File
@@ -74,18 +74,7 @@ module Oga
super(*args)
end
# Delegate all callbacks to the handler object.
instance_methods.grep(/^(on_|after_)/).each do |method|
eval <<-EOF, nil, __FILE__, __LINE__ + 1
def #{method}(*args)
run_callback(:#{method}, *args)
return
end
EOF
end
# Manually overwrite `on_element` so we can ensure that `after_element`
# Manually define `on_element` so we can ensure that `after_element`
# always receives the namespace and name.
#
# @see [Oga::XML::Parser#on_element]
@@ -96,7 +85,7 @@ module Oga
[namespace, name]
end
# Manually overwrite `after_element` so it can take a namespace and name.
# Manually define `after_element` so it can take a namespace and name.
# This differs a bit from the regular `after_element` which only takes an
# {Oga::XML::Element} instance.
#
@@ -107,7 +96,7 @@ module Oga
return
end
# Manually overwrite this method since for this one we _do_ want the
# Manually define this method since for this one we _do_ want the
# return value so it can be passed to `on_element`.
#
# @see [Oga::XML::Parser#on_attribute]
@@ -157,6 +146,21 @@ module Oga
return
end
# Delegate remaining callbacks to the handler object.
existing_methods = instance_methods(false)
instance_methods.grep(/^(on_|after_)/).each do |method|
next if existing_methods.include?(method)
eval <<-EOF, nil, __FILE__, __LINE__ + 1
def #{method}(*args)
run_callback(:#{method}, *args)
return
end
EOF
end
private
# @return [TrueClass|FalseClass]