wash_out 0.9.2 → 0.11.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/.gitignore +1 -1
- data/.travis.yml +35 -4
- data/Appraisals +8 -12
- data/Gemfile +1 -1
- data/README.md +85 -7
- data/Rakefile +15 -5
- data/app/helpers/wash_out_helper.rb +59 -24
- data/app/views/{wash_with_soap → wash_out}/document/error.builder +0 -0
- data/app/views/{wash_with_soap → wash_out}/document/response.builder +7 -0
- data/app/views/{wash_with_soap → wash_out}/document/wsdl.builder +14 -14
- data/app/views/{wash_with_soap → wash_out}/rpc/error.builder +0 -0
- data/app/views/{wash_with_soap → wash_out}/rpc/response.builder +8 -1
- data/app/views/{wash_with_soap → wash_out}/rpc/wsdl.builder +15 -15
- data/gemfiles/rails_3.2.13.gemfile +21 -0
- data/gemfiles/rails_4.0.0.gemfile +20 -0
- data/gemfiles/rails_4.1.0.gemfile +20 -0
- data/gemfiles/rails_4.2.0.gemfile +20 -0
- data/gemfiles/rails_5.0.0.beta2.gemfile +19 -0
- data/gemfiles/rails_5.0.0.gemfile +19 -0
- data/lib/wash_out/dispatcher.rb +96 -39
- data/lib/wash_out/param.rb +14 -2
- data/lib/wash_out/router.rb +52 -22
- data/lib/wash_out/soap.rb +11 -0
- data/lib/wash_out/version.rb +1 -1
- data/lib/wash_out/wsse.rb +3 -3
- data/lib/wash_out.rb +32 -5
- data/spec/dummy/config/environments/test.rb +1 -0
- data/spec/fixtures/nested_refs_to_arrays.xml +19 -0
- data/spec/fixtures/ref_to_one_array.xml +11 -0
- data/spec/fixtures/refs_to_arrays.xml +16 -0
- data/spec/lib/wash_out/dispatcher_spec.rb +124 -17
- data/spec/lib/wash_out/middleware_spec.rb +8 -8
- data/spec/lib/wash_out/param_spec.rb +43 -11
- data/spec/lib/wash_out/router_spec.rb +33 -5
- data/spec/lib/wash_out/type_spec.rb +9 -9
- data/spec/lib/wash_out_spec.rb +361 -103
- data/spec/spec_helper.rb +26 -4
- metadata +18 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82173ea05524c819f835867ecc6c49b2e5264be4
|
4
|
+
data.tar.gz: c539a9c5a8793bb884c575f03624aec4f78dad09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f95800e511ef556fcd9be44eb3f15ce7c8a95ed9f90cf9bc35d2870f89c4cd7357059d914bc2f0c81eef0119adf092c6fad0cb803e4bc097c03cdcc25a01d8ab
|
7
|
+
data.tar.gz: e0aee07a1f29c56a175b4bbb764fffb086e515084783a305db61697efe287080aee785ed6cf165b58f285a615df3c93cd13dfafedc865c724fc82a14e4e3d13c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,7 +1,38 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
script: bundle exec rspec
|
2
|
+
gemfile:
|
3
|
+
- gemfiles/rails_3.2.13.gemfile
|
4
|
+
- gemfiles/rails_4.0.0.gemfile
|
5
|
+
- gemfiles/rails_4.1.0.gemfile
|
6
|
+
- gemfiles/rails_4.2.0.gemfile
|
7
|
+
- gemfiles/rails_5.0.0.gemfile
|
3
8
|
rvm:
|
4
9
|
- 1.9.3
|
5
|
-
- jruby-19mode
|
6
10
|
- 2.0.0
|
7
|
-
- 2.1.
|
11
|
+
- 2.1.8
|
12
|
+
- 2.2.4
|
13
|
+
- 2.3.0
|
14
|
+
- jruby
|
15
|
+
matrix:
|
16
|
+
exclude:
|
17
|
+
- rvm: 2.2.4
|
18
|
+
gemfile: gemfiles/rails_3.2.13.gemfile
|
19
|
+
- rvm: 2.3.0
|
20
|
+
gemfile: gemfiles/rails_3.2.13.gemfile
|
21
|
+
- rvm: 1.9.3
|
22
|
+
gemfile: gemfiles/rails_4.0.0.gemfile
|
23
|
+
- rvm: 1.9.3
|
24
|
+
gemfile: gemfiles/rails_4.2.0.gemfile
|
25
|
+
- rvm: jruby
|
26
|
+
gemfile: gemfiles/rails_4.2.0.gemfile
|
27
|
+
- rvm: 1.9.3
|
28
|
+
gemfile: gemfiles/rails_5.0.0.gemfile
|
29
|
+
- rvm: 2.0.0
|
30
|
+
gemfile: gemfiles/rails_5.0.0.gemfile
|
31
|
+
- rvm: 2.1.8
|
32
|
+
gemfile: gemfiles/rails_5.0.0.gemfile
|
33
|
+
- rvm: 2.2.4
|
34
|
+
gemfile: gemfiles/rails_5.0.0.gemfile
|
35
|
+
- rvm: jruby
|
36
|
+
gemfile: gemfiles/rails_5.0.0.gemfile
|
37
|
+
before_install:
|
38
|
+
- gem update bundler
|
data/Appraisals
CHANGED
@@ -1,23 +1,19 @@
|
|
1
|
-
appraise "rails-3.2.8" do
|
2
|
-
gem "rails", "3.2.8"
|
3
|
-
end
|
4
|
-
|
5
|
-
appraise "rails-3.1.3" do
|
6
|
-
gem "rails", "3.1.3"
|
7
|
-
end
|
8
|
-
|
9
|
-
appraise "rails-3.2.12" do
|
10
|
-
gem "rails", "3.2.12"
|
11
|
-
end
|
12
|
-
|
13
1
|
appraise "rails-4.0.0" do
|
14
2
|
gem "rails", "4.0.0"
|
3
|
+
gem "listen", "< 3.1.0"
|
15
4
|
end
|
16
5
|
|
17
6
|
appraise "rails-4.1.0" do
|
18
7
|
gem "rails", "4.1.0"
|
8
|
+
gem "listen", "< 3.1.0"
|
19
9
|
end
|
20
10
|
|
21
11
|
appraise "rails-4.2.0" do
|
22
12
|
gem "rails", "4.2.0"
|
13
|
+
gem "listen", "< 3.1.0"
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
appraise "rails-5.0.0" do
|
18
|
+
gem "rails", "5.0.0"
|
23
19
|
end
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -10,11 +10,7 @@ But if you have a chance, please [http://stopsoap.com/](http://stopsoap.com/).
|
|
10
10
|
|
11
11
|
## Compatibility
|
12
12
|
|
13
|
-
Rails
|
14
|
-
|
15
|
-
Ruby 1.8 is not officially supported since 0.5.3. We will accept further compatibilty pull-requests but no upcoming versions will be tested against it.
|
16
|
-
|
17
|
-
Rubinius support temporarily dropped since 0.6.2 due to Rails 4 incompatibility.
|
13
|
+
Rails 4.0 and higher is tested. Code is known to work with earlier versions but we don't bother testing outdated versions anymore - give it a try if you are THAT unlucky.
|
18
14
|
|
19
15
|
## Installation
|
20
16
|
|
@@ -75,15 +71,97 @@ class RumbasController < ApplicationController
|
|
75
71
|
:args => { :data => [:integer] },
|
76
72
|
:return => [:boolean]
|
77
73
|
def integers_to_boolean
|
78
|
-
render :soap => params[:data].map{|
|
74
|
+
render :soap => params[:data].map{|i| i > 0}
|
79
75
|
end
|
80
76
|
|
77
|
+
# Params from XML attributes;
|
78
|
+
# e.g. for a request to the 'AddCircle' action:
|
79
|
+
# <soapenv:Envelope>
|
80
|
+
# <soapenv:Body>
|
81
|
+
# <AddCircle>
|
82
|
+
# <Circle radius="5.0">
|
83
|
+
# <Center x="10" y="12" />
|
84
|
+
# </Circle>
|
85
|
+
# </AddCircle>
|
86
|
+
# </soapenv:Body>
|
87
|
+
# </soapenv:Envelope>
|
88
|
+
soap_action "AddCircle",
|
89
|
+
:args => { :circle => { :center => { :@x => :integer,
|
90
|
+
:@y => :integer },
|
91
|
+
:@radius => :double } },
|
92
|
+
:return => nil, # [] for wash_out below 0.3.0
|
93
|
+
:to => :add_circle
|
94
|
+
def add_circle
|
95
|
+
circle = params[:circle]
|
96
|
+
Circle.new(circle[:center][:x], circle[:center][:y], circle[:radius])
|
97
|
+
|
98
|
+
render :soap => nil
|
99
|
+
end
|
100
|
+
|
101
|
+
# With a customised input tag name, in case params are wrapped;
|
102
|
+
# e.g. for a request to the 'IntegersToBoolean' action:
|
103
|
+
# <soapenv:Envelope>
|
104
|
+
# <soapenv:Body>
|
105
|
+
# <MyRequest> <!-- not <IntegersToBoolean> -->
|
106
|
+
# <Data>...</Data>
|
107
|
+
# </MyRequest>
|
108
|
+
# </soapenv:Body>
|
109
|
+
# </soapenv:Envelope>
|
110
|
+
soap_action "integers_to_boolean",
|
111
|
+
:args => { :my_request => { :data => [:integer] } },
|
112
|
+
:as => 'MyRequest',
|
113
|
+
:return => [:boolean]
|
114
|
+
|
81
115
|
# You can use all Rails features like filtering, too. A SOAP controller
|
82
116
|
# is just like a normal controller with a special routing.
|
83
117
|
before_filter :dump_parameters
|
84
118
|
def dump_parameters
|
85
119
|
Rails.logger.debug params.inspect
|
86
120
|
end
|
121
|
+
|
122
|
+
|
123
|
+
# Rendering SOAP headers
|
124
|
+
soap_action "integer_to_header_string",
|
125
|
+
:args => :integer,
|
126
|
+
:return => :string,
|
127
|
+
:header_return => :string
|
128
|
+
def integer_to_header_string
|
129
|
+
render :soap => params[:value].to_s, :header => (params[:value]+1).to_s
|
130
|
+
end
|
131
|
+
|
132
|
+
# Reading SOAP Headers
|
133
|
+
# This is different than normal SOAP params, because we don't specify the incoming format of the header,
|
134
|
+
# but we can still access it through `soap_request.headers`. Note that the values are all strings or hashes.
|
135
|
+
soap_action "AddCircleWithHeaderRadius",
|
136
|
+
:args => { :circle => { :center => { :x => :integer,
|
137
|
+
:y => :integer } } },
|
138
|
+
:return => nil, # [] for wash_out below 0.3.0
|
139
|
+
:to => :add_circle
|
140
|
+
# e.g. for a request to the 'AddCircleWithHeaderRadius' action:
|
141
|
+
# <soapenv:Envelope>
|
142
|
+
# <soap:Header>
|
143
|
+
# <radius>12345</radius>
|
144
|
+
# </soap:Header>
|
145
|
+
# <soapenv:Body>
|
146
|
+
# <AddCircle>
|
147
|
+
# <Circle radius="5.0">
|
148
|
+
# <Center x="10" y="12" />
|
149
|
+
# </Circle>
|
150
|
+
# </AddCircle>
|
151
|
+
# </soapenv:Body>
|
152
|
+
# </soapenv:Envelope>
|
153
|
+
def add_circle_with_header_radius
|
154
|
+
circle = params[:circle]
|
155
|
+
radius = soap_request.headers[:radius]
|
156
|
+
raise SOAPError, "radius must be specified in the SOAP header" if radius.blank?
|
157
|
+
radius = radius.to_f
|
158
|
+
raise SOAPError, "radius is too small" if radius < 3.0
|
159
|
+
|
160
|
+
Circle.new(circle[:center][:x], circle[:center][:y], radius)
|
161
|
+
|
162
|
+
render :soap => nil
|
163
|
+
end
|
164
|
+
|
87
165
|
end
|
88
166
|
```
|
89
167
|
|
@@ -122,7 +200,7 @@ inside separate classes for the complex ones. Here's the way to do that:
|
|
122
200
|
class Fluffy < WashOut::Type
|
123
201
|
map :universe => {
|
124
202
|
:name => :string,
|
125
|
-
:age => :
|
203
|
+
:age => :integer
|
126
204
|
}
|
127
205
|
end
|
128
206
|
|
data/Rakefile
CHANGED
@@ -3,12 +3,22 @@ require 'bundler/gem_tasks'
|
|
3
3
|
require 'appraisal'
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
|
6
|
-
RSpec::Core::RakeTask.new
|
6
|
+
RSpec::Core::RakeTask.new
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
task :console do
|
9
|
+
require "action_controller/railtie"
|
10
|
+
require "rails/test_unit/railtie"
|
11
|
+
Bundler.require
|
12
|
+
binding.pry
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
desc 'Default: run the unit tests.'
|
17
|
+
task default: [:all]
|
10
18
|
|
11
19
|
desc 'Test the plugin under all supported Rails versions.'
|
12
|
-
task :all
|
13
|
-
|
20
|
+
task :all do |_t|
|
21
|
+
# this is needed for minitest because it does not support "--pattern" option as Rspec Does
|
22
|
+
ENV['SPEC'] = '--name=spec/**{,/*/**}/*_spec.rb'
|
23
|
+
exec('bundle exec appraisal install && bundle exec rake appraisal spec')
|
14
24
|
end
|
@@ -3,37 +3,57 @@ module WashOutHelper
|
|
3
3
|
def wsdl_data_options(param)
|
4
4
|
case controller.soap_config.wsdl_style
|
5
5
|
when 'rpc'
|
6
|
-
|
6
|
+
if param.map.present? || param.value
|
7
|
+
{ :"xsi:type" => param.namespaced_type }
|
8
|
+
else
|
9
|
+
{ :"xsi:nil" => true }
|
10
|
+
end
|
7
11
|
when 'document'
|
8
12
|
{ }
|
9
13
|
end
|
10
14
|
end
|
11
15
|
|
16
|
+
def wsdl_data_attrs(param)
|
17
|
+
param.map.reduce({}) do |memo, p|
|
18
|
+
if p.respond_to?(:attribute?) && p.attribute?
|
19
|
+
memo.merge p.attr_name => p.value
|
20
|
+
else
|
21
|
+
memo
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
12
26
|
def wsdl_data(xml, params)
|
13
27
|
params.each do |param|
|
28
|
+
next if param.attribute?
|
29
|
+
|
14
30
|
tag_name = param.name
|
15
31
|
param_options = wsdl_data_options(param)
|
32
|
+
param_options.merge! wsdl_data_attrs(param)
|
16
33
|
|
17
|
-
if
|
18
|
-
if
|
19
|
-
|
34
|
+
if param.struct?
|
35
|
+
if param.multiplied
|
36
|
+
param.map.each do |p|
|
37
|
+
attrs = wsdl_data_attrs p
|
38
|
+
if p.is_a?(Array) || p.map.size > attrs.size
|
39
|
+
blk = proc { wsdl_data(xml, p.map) }
|
40
|
+
end
|
41
|
+
attrs.reject! { |_, v| v.nil? }
|
42
|
+
xml.tag! tag_name, param_options.merge(attrs), &blk
|
43
|
+
end
|
20
44
|
else
|
21
|
-
|
22
|
-
|
23
|
-
xml.tag! tag_name, v, param_options
|
45
|
+
xml.tag! tag_name, param_options do
|
46
|
+
wsdl_data(xml, param.map)
|
24
47
|
end
|
25
48
|
end
|
26
49
|
else
|
27
|
-
if
|
28
|
-
|
29
|
-
|
50
|
+
if param.multiplied
|
51
|
+
param.value = [] unless param.value.is_a?(Array)
|
52
|
+
param.value.each do |v|
|
53
|
+
xml.tag! tag_name, v, param_options
|
30
54
|
end
|
31
55
|
else
|
32
|
-
param.
|
33
|
-
xml.tag! tag_name, param_options do
|
34
|
-
wsdl_data(xml, p.map)
|
35
|
-
end
|
36
|
-
end
|
56
|
+
xml.tag! tag_name, param.value, param_options
|
37
57
|
end
|
38
58
|
end
|
39
59
|
end
|
@@ -45,12 +65,27 @@ module WashOutHelper
|
|
45
65
|
if param.struct?
|
46
66
|
if !defined.include?(param.basic_type)
|
47
67
|
xml.tag! "xsd:complexType", :name => param.basic_type do
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
68
|
+
attrs, elems = [], []
|
69
|
+
param.map.each do |value|
|
70
|
+
more << value if value.struct?
|
71
|
+
if value.attribute?
|
72
|
+
attrs << value
|
73
|
+
else
|
74
|
+
elems << value
|
52
75
|
end
|
53
76
|
end
|
77
|
+
|
78
|
+
if elems.any?
|
79
|
+
xml.tag! "xsd:sequence" do
|
80
|
+
elems.each do |value|
|
81
|
+
xml.tag! "xsd:element", wsdl_occurence(value, false, :name => value.name, :type => value.namespaced_type)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
attrs.each do |value|
|
87
|
+
xml.tag! "xsd:attribute", wsdl_occurence(value, false, :name => value.attr_name, :type => value.namespaced_type)
|
88
|
+
end
|
54
89
|
end
|
55
90
|
|
56
91
|
defined << param.basic_type
|
@@ -65,11 +100,11 @@ module WashOutHelper
|
|
65
100
|
end
|
66
101
|
|
67
102
|
def wsdl_occurence(param, inject, extend_with = {})
|
68
|
-
data =
|
69
|
-
|
70
|
-
"#{'xsi:' if inject}
|
71
|
-
|
72
|
-
|
103
|
+
data = {"#{'xsi:' if inject}nillable" => 'true'}
|
104
|
+
if param.multiplied
|
105
|
+
data["#{'xsi:' if inject}minOccurs"] = 0
|
106
|
+
data["#{'xsi:' if inject}maxOccurs"] = 'unbounded'
|
107
|
+
end
|
73
108
|
extend_with.merge(data)
|
74
109
|
end
|
75
110
|
end
|
File without changes
|
@@ -2,6 +2,13 @@ xml.instruct!
|
|
2
2
|
xml.tag! "soap:Envelope", "xmlns:soap" => 'http://schemas.xmlsoap.org/soap/envelope/',
|
3
3
|
"xmlns:xsd" => 'http://www.w3.org/2001/XMLSchema',
|
4
4
|
"xmlns:tns" => @namespace do
|
5
|
+
if !header.nil?
|
6
|
+
xml.tag! "soap:Header" do
|
7
|
+
xml.tag! "tns:#{@action_spec[:response_tag]}" do
|
8
|
+
wsdl_data xml, header
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
5
12
|
xml.tag! "soap:Body" do
|
6
13
|
xml.tag! "tns:#{@action_spec[:response_tag]}" do
|
7
14
|
wsdl_data xml, result
|
@@ -19,6 +19,19 @@ xml.definitions 'xmlns' => 'http://schemas.xmlsoap.org/wsdl/',
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
@map.each do |operation, formats|
|
23
|
+
xml.message :name => "#{operation}" do
|
24
|
+
formats[:in].each do |p|
|
25
|
+
xml.part wsdl_occurence(p, false, :name => p.name, :type => p.namespaced_type)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
xml.message :name => formats[:response_tag] do
|
29
|
+
formats[:out].each do |p|
|
30
|
+
xml.part wsdl_occurence(p, false, :name => p.name, :type => p.namespaced_type)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
22
35
|
xml.portType :name => "#{@name}_port" do
|
23
36
|
@map.each do |operation, formats|
|
24
37
|
xml.operation :name => operation do
|
@@ -49,20 +62,7 @@ xml.definitions 'xmlns' => 'http://schemas.xmlsoap.org/wsdl/',
|
|
49
62
|
|
50
63
|
xml.service :name => "service" do
|
51
64
|
xml.port :name => "#{@name}_port", :binding => "tns:#{@name}_binding" do
|
52
|
-
xml.tag! "soap:address", :location =>
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
@map.each do |operation, formats|
|
57
|
-
xml.message :name => "#{operation}" do
|
58
|
-
formats[:in].each do |p|
|
59
|
-
xml.part wsdl_occurence(p, false, :name => p.name, :type => p.namespaced_type)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
xml.message :name => formats[:response_tag] do
|
63
|
-
formats[:out].each do |p|
|
64
|
-
xml.part wsdl_occurence(p, false, :name => p.name, :type => p.namespaced_type)
|
65
|
-
end
|
65
|
+
xml.tag! "soap:address", :location => WashOut::Router.url(request, @name)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
File without changes
|
@@ -3,9 +3,16 @@ xml.tag! "soap:Envelope", "xmlns:soap" => 'http://schemas.xmlsoap.org/soap/envel
|
|
3
3
|
"xmlns:xsd" => 'http://www.w3.org/2001/XMLSchema',
|
4
4
|
"xmlns:xsi" => 'http://www.w3.org/2001/XMLSchema-instance',
|
5
5
|
"xmlns:tns" => @namespace do
|
6
|
+
if !header.nil?
|
7
|
+
xml.tag! "soap:Header" do
|
8
|
+
xml.tag! "tns:#{@action_spec[:response_tag]}" do
|
9
|
+
wsdl_data xml, header
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
6
13
|
xml.tag! "soap:Body" do
|
7
14
|
xml.tag! "tns:#{@action_spec[:response_tag]}" do
|
8
15
|
wsdl_data xml, result
|
9
16
|
end
|
10
17
|
end
|
11
|
-
end
|
18
|
+
end
|
@@ -19,6 +19,19 @@ xml.definitions 'xmlns' => 'http://schemas.xmlsoap.org/wsdl/',
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
@map.each do |operation, formats|
|
23
|
+
xml.message :name => "#{operation}" do
|
24
|
+
formats[:in].each do |p|
|
25
|
+
xml.part wsdl_occurence(p, true, :name => p.name, :type => p.namespaced_type)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
xml.message :name => formats[:response_tag] do
|
29
|
+
formats[:out].each do |p|
|
30
|
+
xml.part wsdl_occurence(p, true, :name => p.name, :type => p.namespaced_type)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
22
35
|
xml.portType :name => "#{@name}_port" do
|
23
36
|
@map.each do |operation, formats|
|
24
37
|
xml.operation :name => operation do
|
@@ -49,20 +62,7 @@ xml.definitions 'xmlns' => 'http://schemas.xmlsoap.org/wsdl/',
|
|
49
62
|
|
50
63
|
xml.service :name => "service" do
|
51
64
|
xml.port :name => "#{@name}_port", :binding => "tns:#{@name}_binding" do
|
52
|
-
xml.tag! "soap:address", :location =>
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
@map.each do |operation, formats|
|
57
|
-
xml.message :name => "#{operation}" do
|
58
|
-
formats[:in].each do |p|
|
59
|
-
xml.part wsdl_occurence(p, true, :name => p.name, :type => p.namespaced_type)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
xml.message :name => formats[:response_tag] do
|
63
|
-
formats[:out].each do |p|
|
64
|
-
xml.part wsdl_occurence(p, true, :name => p.name, :type => p.namespaced_type)
|
65
|
-
end
|
65
|
+
xml.tag! "soap:address", :location => WashOut::Router.url(request, @name)
|
66
66
|
end
|
67
67
|
end
|
68
|
-
end
|
68
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "http://rubygems.org"
|
4
|
+
|
5
|
+
gem "wasabi"
|
6
|
+
gem "savon", ">= 2.0.0"
|
7
|
+
gem "httpi"
|
8
|
+
gem "rspec-rails"
|
9
|
+
gem "guard"
|
10
|
+
gem "guard-rspec"
|
11
|
+
gem "rb-fsevent"
|
12
|
+
gem "appraisal"
|
13
|
+
gem "tzinfo"
|
14
|
+
gem "pry"
|
15
|
+
gem "simplecov"
|
16
|
+
gem "simplecov-summary"
|
17
|
+
gem "rails", "3.2.13"
|
18
|
+
gem "test-unit"
|
19
|
+
gem "listen", "< 3.1.0"
|
20
|
+
|
21
|
+
gemspec :path => "../"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "http://rubygems.org"
|
4
|
+
|
5
|
+
gem "wasabi"
|
6
|
+
gem "savon", ">= 2.0.0"
|
7
|
+
gem "httpi"
|
8
|
+
gem "rspec-rails"
|
9
|
+
gem "guard"
|
10
|
+
gem "guard-rspec"
|
11
|
+
gem "rb-fsevent"
|
12
|
+
gem "appraisal"
|
13
|
+
gem "tzinfo"
|
14
|
+
gem "pry"
|
15
|
+
gem "simplecov"
|
16
|
+
gem "simplecov-summary"
|
17
|
+
gem "rails", "4.0.0"
|
18
|
+
gem "listen", "< 3.1.0"
|
19
|
+
|
20
|
+
gemspec :path => "../"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "http://rubygems.org"
|
4
|
+
|
5
|
+
gem "wasabi"
|
6
|
+
gem "savon", ">= 2.0.0"
|
7
|
+
gem "httpi"
|
8
|
+
gem "rspec-rails"
|
9
|
+
gem "guard"
|
10
|
+
gem "guard-rspec"
|
11
|
+
gem "rb-fsevent"
|
12
|
+
gem "appraisal"
|
13
|
+
gem "tzinfo"
|
14
|
+
gem "pry"
|
15
|
+
gem "simplecov"
|
16
|
+
gem "simplecov-summary"
|
17
|
+
gem "rails", "4.1.0"
|
18
|
+
gem "listen", "< 3.1.0"
|
19
|
+
|
20
|
+
gemspec :path => "../"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "http://rubygems.org"
|
4
|
+
|
5
|
+
gem "wasabi"
|
6
|
+
gem "savon", ">= 2.0.0"
|
7
|
+
gem "httpi"
|
8
|
+
gem "rspec-rails"
|
9
|
+
gem "guard"
|
10
|
+
gem "guard-rspec"
|
11
|
+
gem "rb-fsevent"
|
12
|
+
gem "appraisal"
|
13
|
+
gem "tzinfo"
|
14
|
+
gem "pry"
|
15
|
+
gem "simplecov"
|
16
|
+
gem "simplecov-summary"
|
17
|
+
gem "rails", "4.2.0"
|
18
|
+
gem "listen", "< 3.1.0"
|
19
|
+
|
20
|
+
gemspec :path => "../"
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "http://rubygems.org"
|
4
|
+
|
5
|
+
gem "wasabi"
|
6
|
+
gem "savon", ">= 2.0.0"
|
7
|
+
gem "httpi"
|
8
|
+
gem "rspec-rails"
|
9
|
+
gem "guard"
|
10
|
+
gem "guard-rspec"
|
11
|
+
gem "rb-fsevent"
|
12
|
+
gem "appraisal"
|
13
|
+
gem "tzinfo"
|
14
|
+
gem "pry"
|
15
|
+
gem "simplecov"
|
16
|
+
gem "simplecov-summary"
|
17
|
+
gem "rails", "5.0.0.beta2"
|
18
|
+
|
19
|
+
gemspec :path => "../"
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "http://rubygems.org"
|
4
|
+
|
5
|
+
gem "wasabi"
|
6
|
+
gem "savon", ">= 2.0.0"
|
7
|
+
gem "httpi"
|
8
|
+
gem "rspec-rails"
|
9
|
+
gem "guard"
|
10
|
+
gem "guard-rspec"
|
11
|
+
gem "rb-fsevent"
|
12
|
+
gem "appraisal"
|
13
|
+
gem "tzinfo"
|
14
|
+
gem "pry"
|
15
|
+
gem "simplecov"
|
16
|
+
gem "simplecov-summary"
|
17
|
+
gem "rails", "5.0.0"
|
18
|
+
|
19
|
+
gemspec :path => "../"
|