class Wasabi::Document

Wasabi::Document

Represents a WSDL document.

Attributes

document[RW]
endpoint[W]

Sets the SOAP endpoint.

namespace[W]

Sets the target namespace.

Public Class Methods

new(document = nil) click to toggle source

Accepts a WSDL document to parse.

# File lib/wasabi/document.rb, line 12
def initialize(document = nil)
  self.document = document
end

Public Instance Methods

document?() click to toggle source

Returns whether a document was set.

# File lib/wasabi/document.rb, line 19
def document?
  !!document
end
element_form_default() click to toggle source

Returns the value of elementFormDefault.

# File lib/wasabi/document.rb, line 40
def element_form_default
  @element_form_default ||= parser.element_form_default
end
endpoint() click to toggle source

Returns the SOAP endpoint.

# File lib/wasabi/document.rb, line 24
def endpoint
  @endpoint ||= parser.endpoint
end
namespace() click to toggle source

Returns the target namespace.

# File lib/wasabi/document.rb, line 32
def namespace
  @namespace ||= parser.namespace
end
operations() click to toggle source

Returns a map of SOAP operations.

# File lib/wasabi/document.rb, line 60
def operations
  @operations ||= parser.operations
end
soap_action(key) click to toggle source

Returns the SOAP action for a given key.

# File lib/wasabi/document.rb, line 50
def soap_action(key)
  operations[key][:action] if operations[key]
end
soap_actions() click to toggle source

Returns a list of available SOAP actions.

# File lib/wasabi/document.rb, line 45
def soap_actions
  @soap_actions ||= parser.operations.keys
end
soap_input(key) click to toggle source

Returns the SOAP input for a given key.

# File lib/wasabi/document.rb, line 55
def soap_input(key)
  operations[key][:input] if operations[key]
end
xml() click to toggle source

Returns the raw WSDL document. Can be used as a hook to extend the library.

# File lib/wasabi/document.rb, line 66
def xml
  @xml ||= document
end

Private Instance Methods

guard_parse() click to toggle source

Raises an error if the WSDL document is missing.

# File lib/wasabi/document.rb, line 78
def guard_parse
  return true if xml.kind_of?(String)
  raise ArgumentError, "Wasabi needs a WSDL document"
end
parse() click to toggle source

Parses the WSDL document and returns Wasabi::Parser.

# File lib/wasabi/document.rb, line 84
def parse
  parser = Parser.new Nokogiri::XML(xml)
  parser.parse
  parser
end
parser() click to toggle source

Parses the WSDL document and returns the Wasabi::Parser.

# File lib/wasabi/document.rb, line 73
def parser
  @parser ||= guard_parse && parse
end