wasabi 2.4.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,8 @@
1
+ ## 2.4.1 (2012-06-18)
2
+
3
+ * Fix: [rubiii/savon#296](https://github.com/rubiii/savon/issues/296) fixes an issue where
4
+ the WSDL message element doesn't have part element.
5
+
1
6
  ## 2.4.0 (2012-06-08)
2
7
 
3
8
  * Feature: `Wasabi::Document` now accepts either a URL of a remote document,
@@ -150,14 +150,19 @@ module Wasabi
150
150
 
151
151
  # Look up the input by walking up to portType, then up to the message.
152
152
 
153
- binding_input = at_xpath(operation, ".//wsdl:input/@name")
154
153
  binding_type = at_xpath(operation, "../@type").to_s.split(':').last
155
154
  port_type_input = at_xpath(operation, "../../wsdl:portType[@name='#{binding_type}']/wsdl:operation[@name='#{operation_name}']/wsdl:input")
156
155
 
157
156
  port_message_ns_id, port_message_type = port_type_input.attribute("message").to_s.split(':')
158
157
 
159
- # Kinda hackey maybe? This assumes there is ever only one 'part' element in the message.
160
- message_ns_id, message_type = at_xpath(port_type_input, "../../../wsdl:message[@name='#{port_message_type}']/wsdl:part[1]").attribute("element").to_s.split(':')
158
+ message_ns_id, message_type = nil
159
+
160
+ # TODO: Support multiple 'part' elements in the message.
161
+ if (port_message_part = at_xpath(port_type_input, "../../../wsdl:message[@name='#{port_message_type}']/wsdl:part[1]"))
162
+ if (port_message_part_element = port_message_part.attribute("element"))
163
+ message_ns_id, message_type = port_message_part_element.to_s.split(':')
164
+ end
165
+ end
161
166
 
162
167
  # Fall back to message name in portType input if no 'element' attribute in wsdl:message
163
168
  if message_type
@@ -1,5 +1,5 @@
1
1
  module Wasabi
2
2
 
3
- VERSION = "2.4.0"
3
+ VERSION = "2.4.1"
4
4
 
5
5
  end
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <definitions
3
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
4
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
5
+ xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
6
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
7
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
8
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9
+ xmlns:s="http://www.w3.org/2001/XMLSchema"
10
+ xmlns:article="http://example.com/article"
11
+ xmlns:actions="http://example.com/actions"
12
+ targetNamespace="http://example.com/actions">
13
+ <types>
14
+ <s:schema elementFormDefault="qualified" targetNamespace="http://example.com/actions">
15
+ <s:element name="Save">
16
+ <s:complexType>
17
+ <s:sequence>
18
+ <s:element name="article" type="article:Article"/>
19
+ </s:sequence>
20
+ </s:complexType>
21
+ </s:element>
22
+ </s:schema>
23
+ <s:schema elementFormDefault="qualified" targetNamespace="http://example.com/article">
24
+ <s:complexType name="Article">
25
+ <s:sequence>
26
+ <s:element minOccurs="0" name="Author" type="s:string"/>
27
+ <s:element minOccurs="0" name="Title" type="s:string"/>
28
+ </s:sequence>
29
+ </s:complexType>
30
+ </s:schema>
31
+ </types>
32
+ <message name="SaveSoapIn"/>
33
+ <message name="SaveSoapOut">
34
+ <part name="parameters" element="actions:SaveResponse"/>
35
+ </message>
36
+ <portType name="ArticleSoap">
37
+ <operation name="Save">
38
+ <input message="actions:SaveSoapIn"/>
39
+ <output message="actions:SaveSoapOut"/>
40
+ </operation>
41
+ </portType>
42
+ <binding name="ArticleSoap" type="actions:ArticleSoap">
43
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
44
+ <operation name="Save">
45
+ <soap:operation soapAction="http://example.com/actions.Save" style="document"/>
46
+ <input>
47
+ <soap:body use="literal"/>
48
+ </input>
49
+ <output>
50
+ <soap:body use="literal"/>
51
+ </output>
52
+ </operation>
53
+ </binding>
54
+ <service name="StudyMDL">
55
+ <port name="StudyMDLSoap" binding="actions:StudyMDLSoap">
56
+ <soap:address location="http://example.com:1234/soap"/>
57
+ </port>
58
+ </service>
59
+ </definitions>
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe Wasabi::Parser do
4
+ context "with: no_message_parts.wsdl" do
5
+
6
+ subject do
7
+ parser = Wasabi::Parser.new Nokogiri::XML(xml)
8
+ parser.parse
9
+ parser
10
+ end
11
+
12
+ let(:xml) { fixture(:no_message_parts).read }
13
+
14
+ it "falls back to using the message type in the port element" do
15
+ subject.operations[:save][:input].should == "SaveSoapIn"
16
+ end
17
+
18
+ it "falls back to using the namespace ID in the port element" do
19
+ subject.operations[:save][:namespace_identifier].should == "actions"
20
+ end
21
+ end
22
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wasabi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 4
9
- - 0
10
- version: 2.4.0
9
+ - 1
10
+ version: 2.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Daniel Harrington
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-06-08 00:00:00 Z
18
+ date: 2012-06-18 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -126,6 +126,7 @@ files:
126
126
  - spec/fixtures/multiple_namespaces.wsdl
127
127
  - spec/fixtures/multiple_types.wsdl
128
128
  - spec/fixtures/namespaced_actions.wsdl
129
+ - spec/fixtures/no_message_parts.wsdl
129
130
  - spec/fixtures/no_namespace.wsdl
130
131
  - spec/fixtures/soap12.wsdl
131
132
  - spec/fixtures/symbolic_endpoint.wsdl
@@ -144,6 +145,7 @@ files:
144
145
  - spec/wasabi/document/two_bindings_spec.rb
145
146
  - spec/wasabi/document_spec.rb
146
147
  - spec/wasabi/parser/multiple_namespaces_spec.rb
148
+ - spec/wasabi/parser/no_message_parts_spec.rb
147
149
  - spec/wasabi/parser/no_namespace_spec.rb
148
150
  - spec/wasabi/parser/no_target_namespace_spec.rb
149
151
  - spec/wasabi/parser/symbolic_endpoint_spec.rb
@@ -191,6 +193,7 @@ test_files:
191
193
  - spec/fixtures/multiple_namespaces.wsdl
192
194
  - spec/fixtures/multiple_types.wsdl
193
195
  - spec/fixtures/namespaced_actions.wsdl
196
+ - spec/fixtures/no_message_parts.wsdl
194
197
  - spec/fixtures/no_namespace.wsdl
195
198
  - spec/fixtures/soap12.wsdl
196
199
  - spec/fixtures/symbolic_endpoint.wsdl
@@ -209,6 +212,7 @@ test_files:
209
212
  - spec/wasabi/document/two_bindings_spec.rb
210
213
  - spec/wasabi/document_spec.rb
211
214
  - spec/wasabi/parser/multiple_namespaces_spec.rb
215
+ - spec/wasabi/parser/no_message_parts_spec.rb
212
216
  - spec/wasabi/parser/no_namespace_spec.rb
213
217
  - spec/wasabi/parser/no_target_namespace_spec.rb
214
218
  - spec/wasabi/parser/symbolic_endpoint_spec.rb