Sha256: ed7e4d27e7a60afee42269bba0dedb303ccb3d04cee7fb70c368151d7cd04010

Contents?: true

Size: 800 Bytes

Versions: 3

Compression:

Stored size: 800 Bytes

Contents

# encoding: utf-8
# author: Jonathan Morley

module Inspec::Resources
  class XmlConfig < JsonConfig
    name 'xml'
    desc 'Use the xml InSpec resource to test configuration data in an XML file'
    example "
      describe xml('default.xml') do
        its('key/sub_key') { should eq(['value']) }
      end
    "

    def parse(content)
      require 'rexml/document'
      REXML::Document.new(content)
    rescue => e
      raise Inspec::Exceptions::ResourceFailed, "Unable to parse XML: #{e.message}"
    end

    def value(key)
      REXML::XPath.each(@params, key.first.to_s).map(&:text)
    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
      'XML'
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
inspec-1.48.0 lib/resources/xml.rb
inspec-1.47.0 lib/resources/xml.rb
inspec-1.46.2 lib/resources/xml.rb