Class: Wasabi::Document
- Inherits:
-
Object
- Object
- Wasabi::Document
- Defined in:
- lib/wasabi/document.rb
Overview
Wasabi::Document
Represents a WSDL document.
Instance Attribute Summary collapse
-
#document ⇒ Object
Returns the value of attribute document.
-
#endpoint ⇒ Object
Returns the SOAP endpoint.
-
#namespace ⇒ Object
Returns the target namespace.
Instance Method Summary collapse
-
#document? ⇒ Boolean
Returns whether a
document
was set. -
#element_form_default ⇒ Object
Returns the value of elementFormDefault.
-
#initialize(document = nil) ⇒ Document
constructor
Accepts a WSDL
document
to parse. -
#operations ⇒ Object
Returns a map of SOAP operations.
-
#parser ⇒ Object
Parses the WSDL document and returns the
Wasabi::Parser
. -
#soap_action(key) ⇒ Object
Returns the SOAP action for a given
key
. -
#soap_actions ⇒ Object
Returns a list of available SOAP actions.
-
#soap_input(key) ⇒ Object
Returns the SOAP input for a given
key
. - #type_definitions ⇒ Object
- #type_namespaces ⇒ Object
-
#user_defined(namespace) ⇒ Object
Returns whether the given
namespace
was defined manually. -
#xml ⇒ Object
Returns the raw WSDL document.
Constructor Details
#initialize(document = nil) ⇒ Document
Accepts a WSDL document
to parse.
12 13 14 |
# File 'lib/wasabi/document.rb', line 12 def initialize(document = nil) self.document = document end |
Instance Attribute Details
#document ⇒ Object
Returns the value of attribute document.
16 17 18 |
# File 'lib/wasabi/document.rb', line 16 def document @document end |
#endpoint ⇒ Object
Returns the SOAP endpoint.
24 25 26 |
# File 'lib/wasabi/document.rb', line 24 def endpoint @endpoint ||= parser.endpoint end |
#namespace ⇒ Object
Returns the target namespace.
32 33 34 |
# File 'lib/wasabi/document.rb', line 32 def namespace @namespace ||= parser.namespace end |
Instance Method Details
#document? ⇒ Boolean
Returns whether a document
was set.
19 20 21 |
# File 'lib/wasabi/document.rb', line 19 def document? !!document end |
#element_form_default ⇒ Object
Returns the value of elementFormDefault.
40 41 42 |
# File 'lib/wasabi/document.rb', line 40 def element_form_default @element_form_default ||= parser.element_form_default end |
#operations ⇒ Object
Returns a map of SOAP operations.
60 61 62 |
# File 'lib/wasabi/document.rb', line 60 def operations @operations ||= parser.operations end |
#parser ⇒ Object
Parses the WSDL document and returns the Wasabi::Parser
.
102 103 104 |
# File 'lib/wasabi/document.rb', line 102 def parser @parser ||= guard_parse && parse end |
#soap_action(key) ⇒ Object
Returns the SOAP action for a given key
.
50 51 52 |
# File 'lib/wasabi/document.rb', line 50 def soap_action(key) operations[key][:action] if operations[key] end |
#soap_actions ⇒ Object
Returns a list of available SOAP actions.
45 46 47 |
# File 'lib/wasabi/document.rb', line 45 def soap_actions @soap_actions ||= parser.operations.keys end |
#soap_input(key) ⇒ Object
Returns the SOAP input for a given key
.
55 56 57 |
# File 'lib/wasabi/document.rb', line 55 def soap_input(key) operations[key][:input] if operations[key] end |
#type_definitions ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/wasabi/document.rb', line 75 def type_definitions @type_definitions ||= begin result = [] parser.types.each do |type, info| (info.keys - [:namespace]).each do |field| field_type = info[field][:type] tag, namespace = field_type.split(":").reverse result << [[type, field], tag] if user_defined(namespace) end end if document? result end end |
#type_namespaces ⇒ Object
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/wasabi/document.rb', line 64 def type_namespaces @type_namespaces ||= begin namespaces = [] parser.types.each do |type, info| namespaces << [[type], info[:namespace]] (info.keys - [:namespace]).each { |field| namespaces << [[type, field], info[:namespace]] } end if document? namespaces end end |
#user_defined(namespace) ⇒ Object
Returns whether the given namespace
was defined manually.
90 91 92 93 |
# File 'lib/wasabi/document.rb', line 90 def user_defined(namespace) uri = parser.namespaces[namespace] !(uri =~ %r{^http://schemas.xmlsoap.org} || uri =~ %r{^http://www.w3.org}) end |
#xml ⇒ Object
Returns the raw WSDL document. Can be used as a hook to extend the library.
97 98 99 |
# File 'lib/wasabi/document.rb', line 97 def xml @xml ||= document end |