2012-07-25 8 views
9

sah ich den folgenden Quellcode in jemandes Repository:erfordern Datei im Modul?

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

ich wissen will, was Unterschied ist, wenn wir require in einem Modul setzen?

Antwort

11

Es gibt keinen Unterschied in Bezug auf require, d. H. require lädt die Datei immer in den globalen Namespace.

Es sollte beachtet werden, dass in diesem Fall die innere require wird immer laufen, da Rails an diesem Punkt an das Modul bezieht er sich im Innern ist, so dass die if Aussage wird es immer auf true bewerten.

Dies bedeutet, den Code entspricht die möglicherweise weniger verwirrend:

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) 
Verwandte Themen