Module: Inspec::DSL::RequireOverride
- Defined in:
- lib/inspec/dsl_shared.rb
Instance Method Summary collapse
-
#__ruby_require ⇒ Object
Save the toplevel require method to load all ruby dependencies.
- #require(path) ⇒ Object
Instance Method Details
#__ruby_require ⇒ Object
Save the toplevel require method to load all ruby dependencies. It is used whenever the ‘require ’lib’‘ is not in libraries.
10 |
# File 'lib/inspec/dsl_shared.rb', line 10 alias __ruby_require require |
#require(path) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/inspec/dsl_shared.rb', line 12 def require(path) rbpath = path + '.rb' return __ruby_require(path) if !@require_loader.exists?(rbpath) return false if @require_loader.loaded?(rbpath) # This is equivalent to calling `require 'lib'` with lib on disk. # We cannot rely on libraries residing on disk however. # TODO: Sandboxing. content, path, line = @require_loader.load(rbpath) # If we are in the realm of libraries and the LibraryEvalContext # we should have access to the __inspec_binding, which is a Binding # context that provides the correct plane to evaluate all required files to. # It will ensure that embedded calls to `require` still call this # method and get loaded from their correct paths. return __inspec_binding.eval(content, path, line) if defined?(__inspec_binding) eval(content, TOPLEVEL_BINDING, path, line) # rubocop:disable Security/Eval end |