Module: Inspec::ResourceDSL

Included in:
Plugins::Resource
Defined in:
lib/inspec/plugins/resource.rb

Instance Method Summary collapse

Instance Method Details

#__register(name, obj) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/inspec/plugins/resource.rb', line 40

def __register(name, obj)
  cl = Class.new(obj) do
    def initialize(backend, name, *args)
      # attach the backend to this instance
      @__backend_runner__ = backend
      @__resource_name__ = name
      # call the resource initializer
      super(*args)
    end

    def self.desc(description = nil)
      return @description if description.nil?
      @description = description
    end

    def self.example(example = nil)
      return @example if example.nil?
      @example = example
    end

    def resource_skipped
      @resource_skipped
    end

    def skip_resource(message)
      @resource_skipped = message
    end

    def inspec
      @__backend_runner__
    end
  end

  # rubocop:enable Lint/NestedMethodDefinition
  if __resource_registry.key?(name)
    Inspec::Log.warn("Overwriting resource #{name}. To reference a specific version of #{name} use the resource() method")
  end
  __resource_registry[name] = cl
end

#__resource_registryObject



36
37
38
# File 'lib/inspec/plugins/resource.rb', line 36

def __resource_registry
  Inspec::Resource.registry
end

#desc(description = nil) ⇒ Object



26
27
28
29
# File 'lib/inspec/plugins/resource.rb', line 26

def desc(description = nil)
  return if description.nil?
  __resource_registry[@name].desc(description)
end

#example(example = nil) ⇒ Object



31
32
33
34
# File 'lib/inspec/plugins/resource.rb', line 31

def example(example = nil)
  return if example.nil?
  __resource_registry[@name].example(example)
end

#name(name = nil) ⇒ Object



20
21
22
23
24
# File 'lib/inspec/plugins/resource.rb', line 20

def name(name = nil)
  return if name.nil?
  @name = name
  __register(name, self)
end