Call original method when monkey patching

Updated . Posted . Visible to the public.

Ruby offers monkey patching methods in order to change the behavior of a library if there's no better way.

We can call the method we're overriding inside our monkey patch:

class Foo
  def bar(argument)
    'Hello' + argument
  end
end 

module FooExtensions
  def bar
    super(' in my') + ' World'
  end
end

class Foo
  prepend FooExtensions # the only change to above: prepend instead of include
end

Foo.new.bar # => 'Hello in my World'

As mentioned, monkey patches are usually a threat to your code quality, so try to avoid them if possible.

Further readings

For a better understanding have a look at this article Show archive.org snapshot .

Profile picture of Jakob Scholz
Jakob Scholz
Last edit
Tobias Kraze
License
Source code in this card is licensed under the MIT License.
Posted by Jakob Scholz to makandra dev (2021-01-08 07:12)