2012-07-25 25 views
9

vi el siguiente código en el repositorio de alguien:requieren archivo dentro del módulo?

module Twitter 
    module Bootstrap 
     module Rails 
     require 'twitter/bootstrap/rails/engine' if defined?(Rails) 
     end 
    end 
end 

require 'less-rails' 
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails) 

Source

Quiero saber cuál es la diferencia cuando ponemos require en un módulo?

Respuesta

11

No hay diferencia en cuanto al require, es decir, require siempre carga el archivo en el espacio de nombres global.

Cabe señalar que, en este caso, el require interior se siempre plazo, ya que Rails en ese punto se refiere al módulo que está dentro, por lo que la declaración if siempre se evaluará como true.

Esto significa que el código es equivalente a la posiblemente menos confuso:

module Twitter 
    module Bootstrap 
    module Rails 
    end 
    end 
end 

require 'twitter/bootstrap/rails/engine' 
require 'less-rails' 
require 'twitter/bootstrap/rails/bootstrap' if defined?(Rails) 
Cuestiones relacionadas