lolsoap 0.5.1 → 0.6.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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/lolsoap/builder.rb +1 -1
- data/lib/lolsoap/envelope.rb +51 -17
- data/lib/lolsoap/request.rb +2 -2
- data/lib/lolsoap/wsdl/operation_io.rb +16 -0
- data/lib/lolsoap/wsdl.rb +13 -3
- data/lib/lolsoap/wsdl_parser.rb +58 -7
- data/lolsoap.gemspec +6 -5
- data/test/fixtures/stock_quote.wsdl +13 -0
- data/test/integration/test_envelope.rb +3 -3
- data/test/integration/test_wsdl.rb +8 -2
- data/test/unit/test_envelope.rb +3 -3
- data/test/unit/test_wsdl.rb +7 -7
- data/test/unit/test_wsdl_parser.rb +17 -8
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 361f724919b1f7d84c87e673cd76cd787ed94a6a
|
4
|
+
data.tar.gz: 878031ba2f148961f8d0fce5cf7f6027c9ff091d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 501f2960c6979b15173833c6a6ad97d97b81a80ecfbf5b66ffe9fa153697be8fb5d1510c08a6a55c0f3294f7ac96ca3eebaafc4e37e1f4eeb3d7226bb1c72afb
|
7
|
+
data.tar.gz: 4b97d15fa2533e42732650eb7fcc8104cb877f7a85638ef689c51cfc13cf056533536f891b03a7f754ce75b2e63d1fcd7c181f1f421b06e7237994a71d99b78b
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.0
|
data/lib/lolsoap/builder.rb
CHANGED
data/lib/lolsoap/envelope.rb
CHANGED
@@ -26,14 +26,14 @@ module LolSoap
|
|
26
26
|
# b.some 'data'
|
27
27
|
# end
|
28
28
|
def body(klass = Builder)
|
29
|
-
builder = klass.new(
|
29
|
+
builder = klass.new(body_content, input_body_type)
|
30
30
|
yield builder if block_given?
|
31
31
|
builder
|
32
32
|
end
|
33
33
|
|
34
34
|
# Build the header of the envelope
|
35
35
|
def header(klass = Builder)
|
36
|
-
builder = klass.new(
|
36
|
+
builder = klass.new(header_content, input_header_type)
|
37
37
|
yield builder if block_given?
|
38
38
|
builder
|
39
39
|
end
|
@@ -50,16 +50,40 @@ module LolSoap
|
|
50
50
|
operation.input
|
51
51
|
end
|
52
52
|
|
53
|
-
def
|
54
|
-
input.
|
53
|
+
def input_header
|
54
|
+
input.header
|
55
|
+
end
|
56
|
+
|
57
|
+
def input_header_type
|
58
|
+
input_header && input_header.type
|
59
|
+
end
|
60
|
+
|
61
|
+
def input_body
|
62
|
+
input.body
|
63
|
+
end
|
64
|
+
|
65
|
+
def input_body_type
|
66
|
+
input_body.type
|
55
67
|
end
|
56
68
|
|
57
69
|
def output
|
58
70
|
operation.output
|
59
71
|
end
|
60
72
|
|
61
|
-
def
|
62
|
-
output.
|
73
|
+
def output_header
|
74
|
+
output.header
|
75
|
+
end
|
76
|
+
|
77
|
+
def output_header_type
|
78
|
+
output_header && output_header.type
|
79
|
+
end
|
80
|
+
|
81
|
+
def output_body
|
82
|
+
output.body
|
83
|
+
end
|
84
|
+
|
85
|
+
def output_body_type
|
86
|
+
output_body.type
|
63
87
|
end
|
64
88
|
|
65
89
|
def to_xml(options = {})
|
@@ -81,7 +105,10 @@ module LolSoap
|
|
81
105
|
private
|
82
106
|
|
83
107
|
# @private
|
84
|
-
def
|
108
|
+
def header_content; @header_content || @header; end
|
109
|
+
|
110
|
+
# @private
|
111
|
+
def body_content; @body_content; end
|
85
112
|
|
86
113
|
# @private
|
87
114
|
def initialize_doc
|
@@ -91,16 +118,23 @@ module LolSoap
|
|
91
118
|
namespaces[soap_prefix] = root.add_namespace(soap_prefix, soap_namespace)
|
92
119
|
|
93
120
|
@header = doc.create_element 'Header'
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
121
|
+
if input_header
|
122
|
+
@header_content = doc.create_element input_header.name
|
123
|
+
@header << @header_content
|
124
|
+
else
|
125
|
+
@header_content = nil
|
126
|
+
end
|
127
|
+
|
128
|
+
body = doc.create_element 'Body'
|
129
|
+
@body_content = doc.create_element input_body.name
|
130
|
+
|
131
|
+
[root, @header, body].each { |el| el.namespace = namespaces[soap_prefix] }
|
132
|
+
@header_content.namespace = namespaces[input_header.prefix] if @header_content
|
133
|
+
@body_content.namespace = namespaces[input_body.prefix]
|
134
|
+
|
135
|
+
body << @body_content
|
136
|
+
root << @header
|
137
|
+
root << body
|
104
138
|
end
|
105
139
|
end
|
106
140
|
end
|
data/lib/lolsoap/request.rb
CHANGED
@@ -36,12 +36,12 @@ module LolSoap
|
|
36
36
|
|
37
37
|
# The type of the element sent in the request body
|
38
38
|
def input_type
|
39
|
-
envelope.
|
39
|
+
envelope.input_body_type
|
40
40
|
end
|
41
41
|
|
42
42
|
# The type of the element that will be received in the response body
|
43
43
|
def output_type
|
44
|
-
envelope.
|
44
|
+
envelope.output_body_type
|
45
45
|
end
|
46
46
|
|
47
47
|
# The MIME type of the request. This is always application/soap+xml,
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class LolSoap::WSDL
|
2
|
+
class OperationIO
|
3
|
+
attr_reader :header, :body
|
4
|
+
|
5
|
+
def initialize(header, body)
|
6
|
+
@header = header
|
7
|
+
@body = body
|
8
|
+
end
|
9
|
+
|
10
|
+
def inspect
|
11
|
+
"<#{self.class} " \
|
12
|
+
"header=#{header.inspect} " \
|
13
|
+
"body=#{body.inspect}>"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/lolsoap/wsdl.rb
CHANGED
@@ -3,6 +3,7 @@ require 'lolsoap/wsdl_parser'
|
|
3
3
|
module LolSoap
|
4
4
|
class WSDL
|
5
5
|
require 'lolsoap/wsdl/operation'
|
6
|
+
require 'lolsoap/wsdl/operation_io'
|
6
7
|
require 'lolsoap/wsdl/type'
|
7
8
|
require 'lolsoap/wsdl/named_type_reference'
|
8
9
|
require 'lolsoap/wsdl/immediate_type_reference'
|
@@ -83,7 +84,13 @@ module LolSoap
|
|
83
84
|
def load_operations(parser)
|
84
85
|
Hash[
|
85
86
|
parser.operations.map do |k, op|
|
86
|
-
[k, Operation.new(
|
87
|
+
[k, Operation.new(
|
88
|
+
self,
|
89
|
+
k,
|
90
|
+
op[:action],
|
91
|
+
build_io(op[:input], parser),
|
92
|
+
build_io(op[:output], parser)
|
93
|
+
)]
|
87
94
|
end
|
88
95
|
]
|
89
96
|
end
|
@@ -143,8 +150,11 @@ module LolSoap
|
|
143
150
|
end
|
144
151
|
|
145
152
|
# @private
|
146
|
-
def
|
147
|
-
|
153
|
+
def build_io(io, parser)
|
154
|
+
OperationIO.new(
|
155
|
+
io[:header] && build_element(parser.elements[io[:header]]),
|
156
|
+
build_element(parser.elements[io[:body]])
|
157
|
+
)
|
148
158
|
end
|
149
159
|
end
|
150
160
|
end
|
data/lib/lolsoap/wsdl_parser.rb
CHANGED
@@ -98,6 +98,52 @@ module LolSoap
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
+
class Operation
|
102
|
+
attr_reader :parser, :node
|
103
|
+
|
104
|
+
def initialize(parser, node)
|
105
|
+
@parser = parser
|
106
|
+
@node = node
|
107
|
+
end
|
108
|
+
|
109
|
+
def name
|
110
|
+
node.attribute('name').to_s
|
111
|
+
end
|
112
|
+
|
113
|
+
def action
|
114
|
+
node.at_xpath('./s:operation/@soapAction', parser.ns).to_s
|
115
|
+
end
|
116
|
+
|
117
|
+
def input
|
118
|
+
@input ||= OperationIO.new(
|
119
|
+
header(:input),
|
120
|
+
port_type_operation[:input]
|
121
|
+
)
|
122
|
+
end
|
123
|
+
|
124
|
+
def output
|
125
|
+
@output ||= OperationIO.new(
|
126
|
+
header(:output),
|
127
|
+
port_type_operation[:output]
|
128
|
+
)
|
129
|
+
end
|
130
|
+
|
131
|
+
private
|
132
|
+
|
133
|
+
def port_type_operation
|
134
|
+
parser.port_type_operations.fetch(name)
|
135
|
+
end
|
136
|
+
|
137
|
+
def header(direction)
|
138
|
+
if msg = node.at_xpath("./d:#{direction}/s:header/@message", parser.ns)
|
139
|
+
parser.messages.fetch(msg.to_s.split(':').last)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
class OperationIO < Struct.new(:header, :body)
|
145
|
+
end
|
146
|
+
|
101
147
|
SOAP_1_1 = 'http://schemas.xmlsoap.org/wsdl/soap/'
|
102
148
|
SOAP_1_2 = 'http://schemas.xmlsoap.org/wsdl/soap12/'
|
103
149
|
|
@@ -184,16 +230,21 @@ module LolSoap
|
|
184
230
|
binding = doc.at_xpath('/d:definitions/d:service/d:port/s:address/../@binding', ns).to_s.split(':').last
|
185
231
|
|
186
232
|
Hash[
|
187
|
-
doc.xpath("/d:definitions/d:binding[@name='#{binding}']/d:operation", ns).map do |
|
188
|
-
|
189
|
-
action = op.at_xpath('./s:operation/@soapAction', ns).to_s
|
233
|
+
doc.xpath("/d:definitions/d:binding[@name='#{binding}']/d:operation", ns).map do |node|
|
234
|
+
operation = Operation.new(self, node)
|
190
235
|
|
191
236
|
[
|
192
|
-
name,
|
237
|
+
operation.name,
|
193
238
|
{
|
194
|
-
:action => action,
|
195
|
-
:input =>
|
196
|
-
|
239
|
+
:action => operation.action,
|
240
|
+
:input => {
|
241
|
+
:header => operation.input.header,
|
242
|
+
:body => operation.input.body
|
243
|
+
},
|
244
|
+
:output => {
|
245
|
+
:header => operation.output.header,
|
246
|
+
:body => operation.output.body
|
247
|
+
}
|
197
248
|
}
|
198
249
|
]
|
199
250
|
end
|
data/lolsoap.gemspec
CHANGED
@@ -2,15 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: lolsoap 0.
|
5
|
+
# stub: lolsoap 0.6.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "lolsoap"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.6.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
12
13
|
s.authors = ["Jon Leighton"]
|
13
|
-
s.date = "
|
14
|
+
s.date = "2014-09-23"
|
14
15
|
s.description = "A library for dealing with SOAP requests and responses. We tear our hair out so you don't have to."
|
15
16
|
s.email = "j@jonathanleighton.com"
|
16
17
|
s.extra_rdoc_files = [
|
@@ -42,6 +43,7 @@ Gem::Specification.new do |s|
|
|
42
43
|
"lib/lolsoap/wsdl/null_element.rb",
|
43
44
|
"lib/lolsoap/wsdl/null_type.rb",
|
44
45
|
"lib/lolsoap/wsdl/operation.rb",
|
46
|
+
"lib/lolsoap/wsdl/operation_io.rb",
|
45
47
|
"lib/lolsoap/wsdl/type.rb",
|
46
48
|
"lib/lolsoap/wsdl_parser.rb",
|
47
49
|
"lolsoap.gemspec",
|
@@ -69,8 +71,7 @@ Gem::Specification.new do |s|
|
|
69
71
|
]
|
70
72
|
s.homepage = "http://github.com/loco2/lolsoap"
|
71
73
|
s.licenses = ["MIT"]
|
72
|
-
s.
|
73
|
-
s.rubygems_version = "2.1.9"
|
74
|
+
s.rubygems_version = "2.2.2"
|
74
75
|
s.summary = "A library for dealing with SOAP requests and responses."
|
75
76
|
|
76
77
|
if s.respond_to? :specification_version then
|
@@ -27,6 +27,12 @@
|
|
27
27
|
</all>
|
28
28
|
</complexType>
|
29
29
|
</element>
|
30
|
+
<element name="tradePriceRequestHeader">
|
31
|
+
<sequence>
|
32
|
+
<element name="username" type="xs:string"/>
|
33
|
+
<element name="password" type="xs:string"/>
|
34
|
+
</sequence>
|
35
|
+
</element>
|
30
36
|
<element name="tradePriceRequest" type="xsd1:TradePriceRequest" />
|
31
37
|
<complexType name="xsd1:TradePriceRequest" abstract="false">
|
32
38
|
<complexContent>
|
@@ -82,6 +88,10 @@
|
|
82
88
|
</schema>
|
83
89
|
</types>
|
84
90
|
|
91
|
+
<message name="GetLastTradePriceInputHeader">
|
92
|
+
<part name="header" element="xsd1:tradePriceRequestHeader"/>
|
93
|
+
</message>
|
94
|
+
|
85
95
|
<message name="GetLastTradePriceInput">
|
86
96
|
<part name="body" xmlns:foo="http://example.com/stockquote.xsd" element="foo:tradePriceRequest"/>
|
87
97
|
</message>
|
@@ -114,6 +124,7 @@
|
|
114
124
|
<operation name="GetLastTradePrice">
|
115
125
|
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
|
116
126
|
<input>
|
127
|
+
<soap:header use="literal" message="GetLastTradePriceInputHeader" />
|
117
128
|
<soap:body use="literal"/>
|
118
129
|
</input>
|
119
130
|
<output>
|
@@ -123,9 +134,11 @@
|
|
123
134
|
<operation name="GetHistoricalPrice">
|
124
135
|
<soap:operation soapAction="http://example.com/GetHistoricalPrice"/>
|
125
136
|
<input>
|
137
|
+
<soap:header use="literal"/>
|
126
138
|
<soap:body use="literal"/>
|
127
139
|
</input>
|
128
140
|
<output>
|
141
|
+
<soap:header use="literal"/>
|
129
142
|
<soap:body use="literal"/>
|
130
143
|
</output>
|
131
144
|
</operation>
|
@@ -38,12 +38,12 @@ module LolSoap
|
|
38
38
|
|
39
39
|
it 'creates some header' do
|
40
40
|
subject.header do |h|
|
41
|
-
h['ns0'].
|
41
|
+
h['ns0'].username 'LOCO2'
|
42
42
|
end
|
43
43
|
|
44
|
-
el = doc.at_xpath('/soap:Envelope/soap:Header/ns0:
|
44
|
+
el = doc.at_xpath('/soap:Envelope/soap:Header/ns0:tradePriceRequestHeader/ns0:username', doc.namespaces)
|
45
45
|
el.wont_equal nil
|
46
|
-
el.text.to_s.must_equal '
|
46
|
+
el.text.to_s.must_equal 'LOCO2'
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
@@ -8,8 +8,14 @@ module LolSoap
|
|
8
8
|
it 'should successfully parse a WSDL document' do
|
9
9
|
subject.operations.length.must_equal 2
|
10
10
|
subject.operations.fetch('GetLastTradePrice').tap do |o|
|
11
|
-
o.input.name.must_equal '
|
12
|
-
o.
|
11
|
+
o.input.header.name.must_equal 'tradePriceRequestHeader'
|
12
|
+
o.input.body.name.must_equal 'tradePriceRequest'
|
13
|
+
o.action.must_equal 'http://example.com/GetLastTradePrice'
|
14
|
+
end
|
15
|
+
|
16
|
+
subject.operations.fetch('GetHistoricalPrice').tap do |o|
|
17
|
+
o.input.header.must_equal nil
|
18
|
+
o.input.body.name.must_equal 'historicalPriceRequest'
|
13
19
|
end
|
14
20
|
|
15
21
|
subject.types.length.must_equal 4
|
data/test/unit/test_envelope.rb
CHANGED
@@ -11,7 +11,7 @@ module LolSoap
|
|
11
11
|
end
|
12
12
|
|
13
13
|
let(:operation) do
|
14
|
-
OpenStruct.new(:input => OpenStruct.new(:prefix => 'ns0', :name => 'WashHandsRequest'))
|
14
|
+
OpenStruct.new(:input => OpenStruct.new(:body => OpenStruct.new(:prefix => 'ns0', :name => 'WashHandsRequest')))
|
15
15
|
end
|
16
16
|
|
17
17
|
subject { Envelope.new(wsdl, operation) }
|
@@ -62,7 +62,7 @@ module LolSoap
|
|
62
62
|
builder = Object.new
|
63
63
|
|
64
64
|
builder_klass = MiniTest::Mock.new
|
65
|
-
builder_klass.expect(:new, builder, [header])
|
65
|
+
builder_klass.expect(:new, builder, [header, nil])
|
66
66
|
|
67
67
|
block = nil
|
68
68
|
ret = subject.header(builder_klass) { |b| block = b }
|
@@ -75,7 +75,7 @@ module LolSoap
|
|
75
75
|
builder = Object.new
|
76
76
|
|
77
77
|
builder_klass = MiniTest::Mock.new
|
78
|
-
builder_klass.expect(:new, builder, [header])
|
78
|
+
builder_klass.expect(:new, builder, [header, nil])
|
79
79
|
|
80
80
|
subject.header(builder_klass).must_equal builder
|
81
81
|
end
|
data/test/unit/test_wsdl.rb
CHANGED
@@ -13,8 +13,8 @@ module LolSoap
|
|
13
13
|
:operations => {
|
14
14
|
'washHands' => {
|
15
15
|
:action => 'urn:washHands',
|
16
|
-
:input => [namespace, 'brush'],
|
17
|
-
:output => [namespace, 'Color']
|
16
|
+
:input => { :body => [namespace, 'brush'] },
|
17
|
+
:output => { :body => [namespace, 'Color'] }
|
18
18
|
}
|
19
19
|
},
|
20
20
|
:types => {
|
@@ -92,12 +92,12 @@ module LolSoap
|
|
92
92
|
it 'returns a hash of operations' do
|
93
93
|
subject.operations.length.must_equal 1
|
94
94
|
subject.operations['washHands'].tap do |op|
|
95
|
-
op.wsdl.must_equal
|
96
|
-
op.action.must_equal
|
97
|
-
op.input.name.must_equal 'brush'
|
95
|
+
op.wsdl.must_equal subject
|
96
|
+
op.action.must_equal 'urn:washHands'
|
97
|
+
op.input.body.name.must_equal 'brush'
|
98
98
|
op.output.tap do |output|
|
99
|
-
output.is_a?(WSDL::Element).must_equal(true)
|
100
|
-
output.type.elements.keys.sort.must_equal %w(hex name)
|
99
|
+
output.body.is_a?(WSDL::Element).must_equal(true)
|
100
|
+
output.body.type.elements.keys.sort.must_equal %w(hex name)
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
@@ -110,6 +110,11 @@ module LolSoap
|
|
110
110
|
describe '#elements' do
|
111
111
|
it 'returns the elements with inline types' do
|
112
112
|
subject.elements.must_equal({
|
113
|
+
[namespace, "tradePriceRequestHeader"] => {
|
114
|
+
:name => "tradePriceRequestHeader",
|
115
|
+
:namespace => namespace,
|
116
|
+
:type => nil
|
117
|
+
},
|
113
118
|
[namespace, "tradePriceRequest"] => {
|
114
119
|
:name => "tradePriceRequest",
|
115
120
|
:namespace => namespace,
|
@@ -165,10 +170,11 @@ module LolSoap
|
|
165
170
|
describe '#messages' do
|
166
171
|
it 'maps message names to types' do
|
167
172
|
subject.messages.must_equal({
|
168
|
-
'
|
169
|
-
'
|
170
|
-
'
|
171
|
-
'
|
173
|
+
'GetLastTradePriceInputHeader' => [namespace, 'tradePriceRequestHeader'],
|
174
|
+
'GetLastTradePriceInput' => [namespace, 'tradePriceRequest'],
|
175
|
+
'GetLastTradePriceOutput' => [namespace, 'TradePrice'],
|
176
|
+
'GetHistoricalPriceInput' => [namespace, 'historicalPriceRequest'],
|
177
|
+
'GetHistoricalPriceOutput' => [namespace, 'HistoricalPrice']
|
172
178
|
})
|
173
179
|
end
|
174
180
|
end
|
@@ -193,13 +199,16 @@ module LolSoap
|
|
193
199
|
subject.operations.must_equal({
|
194
200
|
'GetLastTradePrice' => {
|
195
201
|
:action => 'http://example.com/GetLastTradePrice',
|
196
|
-
:input =>
|
197
|
-
|
202
|
+
:input => {
|
203
|
+
header: [namespace, 'tradePriceRequestHeader'],
|
204
|
+
body: [namespace, 'tradePriceRequest']
|
205
|
+
},
|
206
|
+
:output => { header: nil, body: [namespace, 'TradePrice'] }
|
198
207
|
},
|
199
208
|
'GetHistoricalPrice' => {
|
200
209
|
:action => 'http://example.com/GetHistoricalPrice',
|
201
|
-
:input => [namespace, 'historicalPriceRequest'],
|
202
|
-
:output => [namespace, 'HistoricalPrice']
|
210
|
+
:input => { header: nil, body: [namespace, 'historicalPriceRequest'] },
|
211
|
+
:output => { header: nil, body: [namespace, 'HistoricalPrice'] }
|
203
212
|
}
|
204
213
|
})
|
205
214
|
end
|
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lolsoap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Leighton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.5'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: jeweler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 1.6.4
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.6.4
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: minitest
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yard
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: A library for dealing with SOAP requests and responses. We tear our hair
|
@@ -89,9 +89,9 @@ extra_rdoc_files:
|
|
89
89
|
- LICENSE.txt
|
90
90
|
- README.md
|
91
91
|
files:
|
92
|
-
- .document
|
93
|
-
- .travis.yml
|
94
|
-
- .yardopts
|
92
|
+
- ".document"
|
93
|
+
- ".travis.yml"
|
94
|
+
- ".yardopts"
|
95
95
|
- Gemfile
|
96
96
|
- Gemfile.lock
|
97
97
|
- LICENSE.txt
|
@@ -113,6 +113,7 @@ files:
|
|
113
113
|
- lib/lolsoap/wsdl/null_element.rb
|
114
114
|
- lib/lolsoap/wsdl/null_type.rb
|
115
115
|
- lib/lolsoap/wsdl/operation.rb
|
116
|
+
- lib/lolsoap/wsdl/operation_io.rb
|
116
117
|
- lib/lolsoap/wsdl/type.rb
|
117
118
|
- lib/lolsoap/wsdl_parser.rb
|
118
119
|
- lolsoap.gemspec
|
@@ -147,19 +148,18 @@ require_paths:
|
|
147
148
|
- lib
|
148
149
|
required_ruby_version: !ruby/object:Gem::Requirement
|
149
150
|
requirements:
|
150
|
-
- -
|
151
|
+
- - ">="
|
151
152
|
- !ruby/object:Gem::Version
|
152
153
|
version: '0'
|
153
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
155
|
requirements:
|
155
|
-
- -
|
156
|
+
- - ">="
|
156
157
|
- !ruby/object:Gem::Version
|
157
158
|
version: '0'
|
158
159
|
requirements: []
|
159
160
|
rubyforge_project:
|
160
|
-
rubygems_version: 2.
|
161
|
+
rubygems_version: 2.2.2
|
161
162
|
signing_key:
|
162
163
|
specification_version: 4
|
163
164
|
summary: A library for dealing with SOAP requests and responses.
|
164
165
|
test_files: []
|
165
|
-
has_rdoc:
|