Method: Inspec::LibraryEvalContext.create

Defined in:
lib/inspec/library_eval_context.rb

.create(registry, require_loader) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/inspec/library_eval_context.rb', line 20

def self.create(registry, require_loader)
  c = Class.new do
    extend Inspec::ResourceDSL
    include Inspec::ResourceBehaviors
    define_singleton_method :__resource_registry do
      registry
    end
  end

  c2 = Class.new do
    define_singleton_method :resource do |version|
      Inspec.validate_resource_dsl_version!(version)
      c
    end
  end

  c3 = Class.new do
    include Inspec::DSL::RequireOverride
    def initialize(require_loader) # rubocop:disable Lint/NestedMethodDefinition
      @require_loader = require_loader
    end
  end

  c3.const_set(:Inspec, c2)
  c3.new(require_loader)
end