# 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) end # 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" end