Class: VisaNetUy::Xmler

Inherits:
Object
  • Object
show all
Includes:
REXML
Defined in:
lib/visa_net_uy/xmler.rb

Constant Summary collapse

VERSION =
'1.0'
Encoding =
'ISO-8859-1'
ROOT_NAME =
'VPOSTransaction1.2'

Instance Method Summary collapse

Instance Method Details

#generate(fields) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/visa_net_uy/xmler.rb', line 26

def generate(fields)
  fields_temp = {}

  dom = Document.new
  dom << XMLDecl.new(VERSION, Encoding)

  root = Element.new(ROOT_NAME)
  dom << root

  fields.each_pair do |field, value|
    if VisaNetUy::VALID_FIELDS.include? field
      fields_temp[field] = value
    else
      raise "#{field} is not a valid field."
    end
  end

  fields_temp.each_pair do |field, value|
    element = Element.new(field)
    element.text = value

    root << element
  end

  xml = ''
  dom.write(xml)

  xml
end

#parse(xml) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/visa_net_uy/xmler.rb', line 56

def parse(xml)
  fields = {}

  dom = Document.new(xml)
  root = dom.root

  return fields unless root.name == ROOT_NAME

  root.elements.each do |child|
    fields[child.name] = child.get_text.nil? ? '' : child.get_text.value
  end

  fields
end