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 .

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)