2011-11-18 7 views
5

Warbler quiere que especifique un RAILS_ENV al crear el WAR. Esto se coloca dentro del web.xml de la GUERRA generada.Usando JRuby Warbler, ¿es posible generar un WAR que pueda aprender sus RAILS_ENV de una variable de entorno?

Sin embargo, si pudieras crear una wAR que aprendiera RAILS_ENV del entorno, podrías crear una GUERRA que se pueda usar para organizar o producir; en otras palabras, un régimen de gestión superior donde se pueda probar WAR y luego desplegado sin ser cambiado.

Respuesta

4

JRuby-Rack ya está configurado para leer desde RAILS_ENV antes de lo que se pone en web.xml, por lo que esa parte es oro. La única cosa que necesita la derrota es esta plantilla rails.erb que consigue combinó en un META-INF/init.rb dentro del archivo de la guerra:

ENV['RAILS_ENV'] = '<%= config.webxml.rails.env %>' 

No es una buena manera real de hacer esto por el momento, pero se puede anular el Warbler::Jar#add_init_file de la siguiente manera en la parte superior de su config/warble.rb para eliminar la plantilla Rails:

class Warbler::Jar 
    alias_method :orig_add_init_file, :add_init_file 
    def add_init_file(config) 
    config.init_contents.delete("#{config.warbler_templates}/rails.erb") if config.init_contents 
    orig_add_init_file(config) 
    end 
end 
+0

¡Gracias! Por cierto, ¿cuál es el propósito de la plantilla de Rails (rails.erb) en META-INF/init.rb? ¿Habrá algún efecto adverso al eliminarlo? –

Cuestiones relacionadas