How to unrequire a Ruby module/library


Require

Regular process

The process to require a module/library is by using:

require 'objspace'


"Unrequire"

List all loaded features

Everytime you require a module/library in ruby, this new value is added to the $LOADED_FEATURES array.

In the irb terminal:

$LOADED_FEATURES


Find your module/library

Yes, you can use the $LOADED_FEATURES array directly to check if your module or library has been loaded.

You can do this by iterating through the array and checking if the module's name is included in any of the paths stored in $LOADED_FEATURES.

$LOADED_FEATURES.any? { |path| path.include?("readline") }

In the previous example, readline is an example of a Ruby module/library.


Mutate the loaded features

In Ruby, once you've required a module or library using the require keyword, you can't directly "unrequire" it. However, you can achieve a similar effect by removing the module from the $LOADED_FEATURES array.

$LOADED_FEATURES.delete_if { |path| path.include?('benchmark') }

In my previous example, benchmark is the module/library.


Double check the loaded features

Let's check if the benchmark module was removed from the $LOADED_FEATURES array:

$LOADED_FEATURES.any? { |path| path.include?("benchmark") }


Done


Conclusion

By following these steps, you can unrequire a Ruby module/library.


Celebrate

The It Crowd Birthday GIFs | Tenor


Reach me out


Final thoughts

Thank you for reading this article.

If you have any questions, thoughts, suggestions, or corrections, please share them with us.

We appreciate your feedback and look forward to hearing from you.

Feel free to suggest topics for future blog articles. Until next time!