2 monkey patched java methods are only available in ruby code.
Ruby monkey patch class method.
Monkey patching changes the behavior of class methods.
Motivated by the intent to patch existing third party code as a workaround to a bug or feature.
So the behavior of the class monkey is changed dynamically.
This can cause unintended side effects or breakage of programs.
Patches go into lib core.
All users of the monkey patched class see the same changes.
This is called a monkey patch.
In the above class you are changing the behavior of the class method defined in the same program file.
There s no good reason to do this sort of patching because jruby marshals strings between java and ruby.
The linking of a new method to the existing class method name happens at runtime.
Intro to monkey patching in ruby.
When you monkey patch core classes you add to the core ruby apis.
These classes methods are implemented in c and there are certain abstractions sacrificed in order to make the implementation easier and more efficient.
Or perhaps you need to monkey patch a class you own.
In ruby a monkey patch mp is any dynamic modification to a class and is often used as a synonym for dynamically modifying any class add new or overwrite existing methods at runtime.
In ruby the term monkey patch was misunderstood to mean any dynamic modification to a class and is often used as a synonym for dynamically modifying any class at runtime.
For example you often see monkey patches that simply add a convenience method that has no side effect.
Ruby has a very beautiful syntax and so it can be tempting to monkey patch a class to turn some ugly method call into something that is more readable.
We are assigning a new method name patchfunc to the existing class method name monkeyfunc.
42 print x bar but you can t do this for certain built in classes like int or float.
I mostly follow rails monkey patching convention.
The above statement asserts that the ruby usage is incorrect but terms evolve and that s not always a bad thing.
You have to know where your monkey patches live.
So you have to have a way to quickly learn those changes when you jump into a new codebase.
Every app with core patches feels a little bit different.
With that in mind let s look at a completely contrived example.
Due to ruby s open classes you can redefine or add functionality to existing classes.