class Decontaminate::Decoder::Tuple

Attributes

decoder[R]
transformer[R]
xpaths[R]

Public Class Methods

new(xpaths, decoder, transformer) click to toggle source
# File lib/decontaminate/decoder/tuple.rb, line 6
def initialize(xpaths, decoder, transformer)
  @xpaths = xpaths
  @decoder = decoder
  @transformer = transformer
end

Public Instance Methods

decode(this, xml_node) click to toggle source
# File lib/decontaminate/decoder/tuple.rb, line 12
def decode(this, xml_node)
  xml_nodes = xpaths.map { |xpath| xml_node && xml_node.at_xpath(xpath) }
  tuple = xml_nodes.map do |element_node|
    decoder.decode this, element_node
  end

  tuple = this.instance_exec(*tuple, &transformer) if transformer

  tuple
end