Can Rails console reload modules under lib? Can Rails console reload modules under lib? ruby-on-rails ruby-on-rails

Can Rails console reload modules under lib?


Try this:

load "#{Rails.root}/lib/yourfile.rb"


In case anyone interested, here's my findings on how to auto-reload require files in Rails without restarting server.

The solution is now available as a Ruby gem require_reloader.


this is the monkeypatch that could help you, paste this in rails console (or you could put this code in a monkeypatch file - although I don't recommend monkeypatching Object with an utility method):

class Object  def self.reload_myself!    method = (self.instance_methods(false) + self.methods(false)).select{|method| method.to_s[0] =~ /[A-Za-z]/}.last    if method      if self.instance_methods(false).index method        method = self.instance_method(method)      elsif        method =  self.method(method)      end      if (method.source_location)        source_location = method.source_location[0]        puts "reloading: #{source_location}"        load "#{source_location}"      else        puts "could not reload #{self.name}"      end    end  endend

and you can call

reload_myself!

on any object to reload its source code.