ruby - What are the advantages of using `require` inside a module instead of at the top? -
usually, put of require
statements @ top of file. while reading source code poltergeist, noticed following
module capybara module poltergeist require 'capybara/poltergeist/utility' require 'capybara/poltergeist/driver' require 'capybara/poltergeist/browser' # more requires end end
what advantages of using require
way?
the advantage in case capybara::poltergeist
module exists before modules required. since modules extend capybara::poltergeist
module, way ensure aren't loaded before module available. placing require statements after module definition have same effect.
consider following:
# foobar.rb require './bar_module' module foo module bar end end # bar_module.rb module foo::bar def baz "hi!" end end
this setup fail because non-nested foo::bar
syntax expect foo
exist time module called. changing first file to:
module foo module bar require './bar_module' end end
the require work, since foo::bar
exist time bar_module
starts doing thing.
in particular instance, doesn't have practical effect, since poltergeist uses nested module syntax (module foo; module bar
) rather collapsed syntax (module foo::bar
), it's practice delineates "these requires expect module exist".
Comments
Post a Comment