Carregamento automático de arquivos lib no Rails 4
Eu uso a seguinte linha em um inicializador para carregar automaticamente o código no meu/lib
diretório durante o desenvolvimento:
config / initializers / custom.rb:
RELOAD_LIBS = Dir[Rails.root + 'lib/**/*.rb'] if Rails.env.development?
(porRails 3 Quicktip: Auto recarregar pastas lib no modo de desenvolvimento)
Funciona muito bem, mas é ineficiente demais para ser usado na produção. Em vez de carregar libs em cada solicitação, eu só quero carregá-las na inicialização. O mesmo blog temoutro artigo descrevendo como fazer isso:
config / application.rb:
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/"]
No entanto, quando eu mudo para isso, mesmo em desenvolvimento, recebo NoMethodErrors ao tentar usar as funções lib.
Exemplo de um dos meus arquivos lib:
lib / extensions.rb:
Time.class_eval do
def self.milli_stamp
Time.now.strftime('%Y%m%d%H%M%S%L').to_i
end
end
ChamandoTime.milli_stamp
lançará NoMethodError
Eu percebo que os outros responderam perguntas semelhantes sobre o SO, mas todos parecem lidar com convenções de nomenclatura e outros problemas que eu não tive que me preocupar antes.trabalhado para carregamento por solicitação, eu só quero alterá-lo paracomece Carregando. Qual é o jeito certo de fazer isso?