Sha256: d37115e319c7486d078a051a0668e364cdd421b923342566b74d383716ece133
Contents?: true
Size: 748 Bytes
Versions: 2
Compression:
Stored size: 748 Bytes
Contents
require 'rexml/document' require 'rexml/xpath' module PinchHitter::Message module Xml def xml_message(file, overrides={}) xml = load_xml_file(file) overrides.each do |key, text| replace_xml(xml, key, text) end xml.to_s end private def load_xml_file(filename) file = File.new filename REXML::Document.new file end def replace_xml(xml, key, text) parts = key.split('@') tag = find_node xml, parts.first if parts.length == 1 #match text node tag.text = text else #match attribute tag.attributes[parts.last] = text end end def find_node(xml, tag) REXML::XPath.first(xml, "//#{tag}") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
pinch_hitter-0.7.0 | lib/pinch_hitter/message/xml.rb |
pinch_hitter-0.6.0 | lib/pinch_hitter/message/xml.rb |