class CorreiosSigep::Builders::XML::Request

Public Class Methods

build_xml(request, overrides={}) click to toggle source
# File lib/correios_sigep/builders/xml/request.rb, line 24
def self.build_xml(request, overrides={})
  new(request, overrides).to_xml
end
new(document, overrides={}) click to toggle source
# File lib/correios_sigep/builders/xml/request.rb, line 6
def initialize(document, overrides={})
  @document = Nokogiri::XML(document.to_xml)
  config    = CorreiosSigep.configuration

  administrative_fields!( overrides[:administrative] ||
                          config.administrative_fields )
end

Public Instance Methods

administrative_fields!(administrative_fields) click to toggle source
# File lib/correios_sigep/builders/xml/request.rb, line 14
def administrative_fields!(administrative_fields)
  add_node 'codAdministrativo', administrative_fields.administrative_code
end
to_xml() click to toggle source
# File lib/correios_sigep/builders/xml/request.rb, line 18
def to_xml
  @document
    .to_xml(save_with: Nokogiri::XML::Node::SaveOptions::NO_DECLARATION)
    .gsub(/<(\/)?root>/, '')
end

Private Instance Methods

add_node(node_name, node_content) click to toggle source
# File lib/correios_sigep/builders/xml/request.rb, line 30
def add_node(node_name, node_content)
  @document.root.children.first.add_previous_sibling(
    create_node(node_name, node_content)
  )
end
create_node(node_name, node_content) click to toggle source
# File lib/correios_sigep/builders/xml/request.rb, line 36
def create_node(node_name, node_content)
  node = Nokogiri::XML::Node.new(node_name, @document)
  node.content = node_content
  node
end