lolsoap 0.3.2 → 0.4.0
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.
- data/.travis.yml +1 -4
- data/README.md +11 -0
- data/VERSION +1 -1
- data/lib/lolsoap/fault.rb +3 -3
- data/lib/lolsoap/response.rb +1 -4
- data/lib/lolsoap/wsdl_parser.rb +3 -1
- data/lib/lolsoap.rb +0 -1
- data/lolsoap.gemspec +2 -3
- data/test/fixtures/stock_quote.wsdl +1 -1
- data/test/fixtures/stock_quote_fault_soap_1_1.xml +7 -7
- data/test/unit/test_response.rb +3 -3
- metadata +3 -4
- data/lib/lolsoap/errors.rb +0 -15
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -105,6 +105,17 @@ Development sponsored by [Loco2](http://loco2.com/).
|
|
105
105
|
|
106
106
|
## Changelog ##
|
107
107
|
|
108
|
+
### 0.4 ###
|
109
|
+
|
110
|
+
* Don't raise an exception on when a SOAP fault is detected. Whether or
|
111
|
+
not this is an exceptional situation should be up to the user, as APIs
|
112
|
+
may use SOAP faults to implement business logic errors.
|
113
|
+
* Ruby 1.8 support dropped
|
114
|
+
|
115
|
+
### 0.3 ###
|
116
|
+
|
117
|
+
* Support for WSDL inline type definitions and type extensions
|
118
|
+
|
108
119
|
### 0.2 ###
|
109
120
|
|
110
121
|
* SOAP 1.1 support
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
data/lib/lolsoap/fault.rb
CHANGED
@@ -17,21 +17,21 @@ module LolSoap
|
|
17
17
|
|
18
18
|
def code
|
19
19
|
node.at_xpath(
|
20
|
-
soap_version == '1.2' ? './soap:Code/soap:Value' : './
|
20
|
+
soap_version == '1.2' ? './soap:Code/soap:Value' : './faultcode',
|
21
21
|
'soap' => soap_namespace
|
22
22
|
).text.to_s
|
23
23
|
end
|
24
24
|
|
25
25
|
def reason
|
26
26
|
node.at_xpath(
|
27
|
-
soap_version == '1.2' ? './soap:Reason/soap:Text' : './
|
27
|
+
soap_version == '1.2' ? './soap:Reason/soap:Text' : './faultstring',
|
28
28
|
'soap' => soap_namespace
|
29
29
|
).text.to_s
|
30
30
|
end
|
31
31
|
|
32
32
|
def detail
|
33
33
|
node.at_xpath(
|
34
|
-
soap_version == '1.2' ? './soap:Detail/*' : './
|
34
|
+
soap_version == '1.2' ? './soap:Detail/*' : './detail/*',
|
35
35
|
'soap' => soap_namespace
|
36
36
|
).to_xml
|
37
37
|
end
|
data/lib/lolsoap/response.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'lolsoap/errors'
|
2
1
|
require 'lolsoap/fault'
|
3
2
|
require 'lolsoap/hash_builder'
|
4
3
|
require 'nokogiri'
|
@@ -22,8 +21,6 @@ module LolSoap
|
|
22
21
|
def initialize(request, doc)
|
23
22
|
@request = request
|
24
23
|
@doc = doc
|
25
|
-
|
26
|
-
raise FaultRaised.new(fault) if fault
|
27
24
|
end
|
28
25
|
|
29
26
|
# Namespace used for SOAP Envelope tags
|
@@ -46,7 +43,7 @@ module LolSoap
|
|
46
43
|
@header ||= doc.at_xpath('/soap:Envelope/soap:Header', 'soap' => soap_namespace)
|
47
44
|
end
|
48
45
|
|
49
|
-
# SOAP fault, if any
|
46
|
+
# SOAP fault, if any
|
50
47
|
def fault
|
51
48
|
@fault ||= begin
|
52
49
|
node = doc.at_xpath('/soap:Envelope/soap:Body/soap:Fault', 'soap' => soap_namespace)
|
data/lib/lolsoap/wsdl_parser.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'nokogiri'
|
2
|
+
require 'cgi'
|
2
3
|
|
3
4
|
module LolSoap
|
4
5
|
# @private
|
@@ -125,7 +126,7 @@ module LolSoap
|
|
125
126
|
end
|
126
127
|
|
127
128
|
def endpoint
|
128
|
-
@endpoint ||= doc.at_xpath('/d:definitions/d:service/d:port/s:address/@location', ns).to_s
|
129
|
+
@endpoint ||= CGI.unescape(doc.at_xpath('/d:definitions/d:service/d:port/s:address/@location', ns).to_s)
|
129
130
|
end
|
130
131
|
|
131
132
|
def schemas
|
@@ -251,3 +252,4 @@ module LolSoap
|
|
251
252
|
end
|
252
253
|
end
|
253
254
|
end
|
255
|
+
|
data/lib/lolsoap.rb
CHANGED
data/lolsoap.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "lolsoap"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jon Leighton"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-08-17"
|
13
13
|
s.description = "A library for dealing with SOAP requests and responses. We tear our hair out so you don't have to."
|
14
14
|
s.email = "j@jonathanleighton.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -30,7 +30,6 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/lolsoap/builder.rb",
|
31
31
|
"lib/lolsoap/client.rb",
|
32
32
|
"lib/lolsoap/envelope.rb",
|
33
|
-
"lib/lolsoap/errors.rb",
|
34
33
|
"lib/lolsoap/fault.rb",
|
35
34
|
"lib/lolsoap/hash_builder.rb",
|
36
35
|
"lib/lolsoap/request.rb",
|
@@ -134,7 +134,7 @@
|
|
134
134
|
<service name="StockQuoteService">
|
135
135
|
<documentation>My first service</documentation>
|
136
136
|
<port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
|
137
|
-
<soap:address location="http://example.com
|
137
|
+
<soap:address location="http://example.com%2Fstockquote"/>
|
138
138
|
</port>
|
139
139
|
</service>
|
140
140
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
<?xml version="1.0"?>
|
2
2
|
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
3
|
-
<soap:Body>
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
</soap:Body>
|
3
|
+
<soap:Body>
|
4
|
+
<soap:Fault>
|
5
|
+
<faultcode>soap:Sender</faultcode>
|
6
|
+
<faultstring>Omg! stock market has crashed!</faultstring>
|
7
|
+
<detail><Foo>Some detail</Foo></detail>
|
8
|
+
</soap:Fault>
|
9
|
+
</soap:Body>
|
10
10
|
</soap:Envelope>
|
data/test/unit/test_response.rb
CHANGED
@@ -37,9 +37,9 @@ module LolSoap
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
it 'should
|
41
|
-
|
42
|
-
|
40
|
+
it 'should return the soap fault' do
|
41
|
+
response = Response.new(request, Nokogiri::XML(File.read(TEST_ROOT + '/fixtures/stock_quote_fault.xml')))
|
42
|
+
response.fault.wont_equal nil
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lolsoap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -113,7 +113,6 @@ files:
|
|
113
113
|
- lib/lolsoap/builder.rb
|
114
114
|
- lib/lolsoap/client.rb
|
115
115
|
- lib/lolsoap/envelope.rb
|
116
|
-
- lib/lolsoap/errors.rb
|
117
116
|
- lib/lolsoap/fault.rb
|
118
117
|
- lib/lolsoap/hash_builder.rb
|
119
118
|
- lib/lolsoap/request.rb
|
@@ -164,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
164
163
|
version: '0'
|
165
164
|
segments:
|
166
165
|
- 0
|
167
|
-
hash:
|
166
|
+
hash: 2957288385863743172
|
168
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
168
|
none: false
|
170
169
|
requirements:
|
data/lib/lolsoap/errors.rb
DELETED