Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Automatically reload gems in rails 5 on every request in development
# Source:
# Inside config/environments/development.rb
# Do the following after every request to the server in development mode
ActionDispatch::Callbacks.to_cleanup do
# If the gem's top level module is currently loaded, unload it
if Object.const_defined?(:MyCoolGem)
Object.send(:remove_const, :MyCoolGem)
# Instruct ruby to "unrequire" all of the gems files.
# CAREFUL: make sure this only matches your gems files.
$".delete_if {|s| s.include? "my_cool_gem"}
# Re-require your gem
# Note: because we removed all files previously required they will be reloaded
# even if you didn't use load/autoload in your gem.
require "my_cool_gem"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment