Sha256: 3c44d6e3efd460d67adb747184f7dadfc6d6b717ba4d979e0296728786742314

Contents?: true

Size: 1.85 KB

Versions: 17

Compression:

Stored size: 1.85 KB

Contents

$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
require "hermod"

require "minitest/autorun"
require "minitest/hell"
require "minitest/reporters"
require "nokogiri"

Minitest::Reporters.use! Minitest::Reporters::DefaultReporter.new

require 'nokogiri'

# Public: Returns the value of a given node from an xml payload.
#
# node_name - xml node name, for example: FinalSubmission
#
# Returns a String
def value_of_node(node_name)
  value_of_nodes(node_name).first
end

# Public: Returns an array of the values of nodes in an xml payload.
#
# node_name - xml node name, for example: NIletter
#
# Returns an Array
def value_of_nodes(node_name)
  ns = nodes(node_name)
  ns.map do |n|
    raise "failed to find #{node_name.inspect} in #{subject.inspect}" if n.nil?
    n.content
  end
end

# Public: Returns the number of nodes with the given name in the payload
#
# node_name - xml node name, for example: NIletters
#
# Returns an Integer
def number_of_nodes(node_name)
  nodes(node_name).count
end

# Public: Returns the Nokogiri.XML node for the given name.
#
# node_name - xml node name, for example: FinalSubmission
#
# Returns a Nokogiri::XML::Node
def node(node_name)
  nodes(node_name).first
end

# Public: Returns a list of Nokogiri.XML nodes for the given name.
#
# node_name - xml node name, for example: NIletter
#
# Returns an Array of Nokogiri::XML::Node objects
def nodes(node_name)
  Nokogiri.XML(subject.to_xml.to_s).remove_namespaces!.css(node_name)
end

# Public: Get the nth node in the document
#
# index - the zero-based index of the node you wish to retrieve
#
# Returns an XML::Node (from LibXML)
def node_by_index(index)
  subject.to_xml.to_a[index]
end

# Public: Returns a hash of attributes on the node with the given name
#
# node_name - xml node name, for example: NIletter
#
# Returns a Hash
def attributes_for_node(node_name)
  node(node_name).attributes
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
hermod-3.3.0 spec/minitest_helper.rb
hermod-3.2.0 spec/minitest_helper.rb
hermod-3.0.0 spec/minitest_helper.rb
hermod-2.7.0 spec/minitest_helper.rb
hermod-2.7.0.pre.rc.1 spec/minitest_helper.rb
hermod-2.6.2 spec/minitest_helper.rb
hermod-2.6.1 spec/minitest_helper.rb
hermod-2.5.3 spec/minitest_helper.rb
hermod-2.5.2 spec/minitest_helper.rb
hermod-2.5.1 spec/minitest_helper.rb
hermod-2.5.0 spec/minitest_helper.rb
hermod-2.4.1 spec/minitest_helper.rb
hermod-2.4.0 spec/minitest_helper.rb
hermod-2.2.0 spec/minitest_helper.rb
hermod-2.1.0 spec/minitest_helper.rb
hermod-1.2.9 spec/minitest_helper.rb
hermod-1.2.8 spec/minitest_helper.rb