Sha256: f5f43889d664d837262e6ad11d25fadf8130ba559a54981917fcfb6b7222843f

Contents?: true

Size: 1.08 KB

Versions: 12

Compression:

Stored size: 1.08 KB

Contents

# encoding: utf-8

require 'yaml'

# Parses a yaml document
# Usage:
# describe yaml('.kitchen.yaml') do
#   its('driver.name') { should eq('vagrant') }
# end
module Inspec::Resources
  class YamlConfig < JsonConfig
    name 'yaml'
    desc 'Use the yaml InSpec audit resource to test configuration data in a YAML file.'
    example <<~EXAMPLE
      describe yaml('config.yaml') do
        its(['driver', 'name']) { should eq 'vagrant' }
      end

      describe yaml({ command: 'retrieve_data.py --yaml' }) do
        its('state') { should eq 'open' }
      end

      describe yaml({ content: \"key1: value1\nkey2: value2\" }) do
        its('key2') { should cmp 'value2' }
      end
    EXAMPLE

    # override file load and parse hash from yaml
    def parse(content)
      YAML.load(content)
    rescue => e
      raise Inspec::Exceptions::ResourceFailed, "Unable to parse YAML: #{e.message}"
    end

    private

    # used by JsonConfig to build up a full to_s method
    # based on whether a file path, content, or command was supplied.
    def resource_base_name
      'YAML'
    end
  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
inspec-core-4.3.2 lib/resources/yaml.rb
inspec-4.3.2 lib/resources/yaml.rb
inspec-core-4.2.0.preview lib/resources/yaml.rb
inspec-4.2.0.preview lib/resources/yaml.rb
inspec-core-4.1.4.preview lib/resources/yaml.rb
inspec-4.1.4.preview lib/resources/yaml.rb
inspec-core-3.9.3 lib/resources/yaml.rb
inspec-3.9.3 lib/resources/yaml.rb
inspec-core-3.9.0 lib/resources/yaml.rb
inspec-3.9.0 lib/resources/yaml.rb
inspec-core-3.7.11 lib/resources/yaml.rb
inspec-3.7.11 lib/resources/yaml.rb