Module: Philiprehberger::XmlBuilder

Defined in:
lib/philiprehberger/xml_builder.rb,
lib/philiprehberger/xml_builder/node.rb,
lib/philiprehberger/xml_builder/escaper.rb,
lib/philiprehberger/xml_builder/version.rb,
lib/philiprehberger/xml_builder/document.rb,
lib/philiprehberger/xml_builder/processing_instruction.rb

Defined Under Namespace

Modules: Escaper Classes: Document, Error, Node, ProcessingInstruction

Constant Summary collapse

VERSION =
'0.4.0'

Class Method Summary collapse

Class Method Details

.build(encoding: 'UTF-8', version: '1.0', declaration: true) {|Document| ... } ⇒ String

Build an XML document using a block-based DSL.

Parameters:

  • encoding (String) (defaults to: 'UTF-8')

    XML encoding declaration (default: “UTF-8”)

  • version (String) (defaults to: '1.0')

    XML version declaration (default: “1.0”)

Yields:

Returns:

  • (String)

    the rendered XML string



19
20
21
22
23
# File 'lib/philiprehberger/xml_builder.rb', line 19

def self.build(encoding: 'UTF-8', version: '1.0', declaration: true, &block)
  doc = Document.new(version: version, encoding: encoding, declaration: declaration)
  block.call(doc)
  doc.to_s
end

.build_soap(soap_version: '1.1', encoding: 'UTF-8', version: '1.0', declaration: true) {|header, body| ... } ⇒ String

Build a SOAP envelope document.

Convenience wrapper around Document#soap_envelope that creates a full XML document with the proper SOAP structure.

Parameters:

  • soap_version (String) (defaults to: '1.1')

    SOAP version: “1.1” or “1.2”

  • encoding (String) (defaults to: 'UTF-8')

    XML encoding declaration (default: “UTF-8”)

  • version (String) (defaults to: '1.0')

    XML version declaration (default: “1.0”)

Yields:

  • (header, body)

    yields two arrays; push lambdas that accept a doc

Returns:

  • (String)

    the rendered SOAP XML string



35
36
37
38
39
# File 'lib/philiprehberger/xml_builder.rb', line 35

def self.build_soap(soap_version: '1.1', encoding: 'UTF-8', version: '1.0', declaration: true, &block)
  doc = Document.new(version: version, encoding: encoding, declaration: declaration)
  doc.soap_envelope(version: soap_version, &block)
  doc.to_s
end