class Inspec::Resources::XmlConfig

Public Instance Methods

parse(content) click to toggle source
# File lib/inspec/resources/xml.rb, line 15
def parse(content)
  require "rexml/document" unless defined?(REXML::Document)
  REXML::Document.new(content)
rescue => e
  raise Inspec::Exceptions::ResourceFailed, "Unable to parse XML: #{e.message}"
end
value(key) click to toggle source
# File lib/inspec/resources/xml.rb, line 22
def value(key)
  output = []
  REXML::XPath.each(@params, key.first.to_s) do |element|
    if element.is_a?(REXML::Attribute)
      output.push(element.to_s)
    elsif element.is_a?(REXML::Element)
      output.push(element.text)
    elsif element.is_a?(Integer) || element.is_a?(TrueClass) || element.is_a?(FalseClass) || element.is_a?(String)
      output.push(element)
    else
      raise Inspec::Exceptions::ResourceFailed, "Unknown XML object received (#{element.class}): #{element}"
    end
  end

  output
end

Private Instance Methods

resource_base_name() click to toggle source

used by JsonConfig to build up a full to_s method based on whether a file path, content, or command was supplied.

# File lib/inspec/resources/xml.rb, line 43
def resource_base_name
  "XML"
end