wash_out 0.5.3 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.4
4
+
5
+ * Ability to manually specify `response_tag` for `soap_action` [@inossidabile][]
6
+
3
7
  ## 0.5.2
4
8
 
5
9
  * .NET-compliant response tags [@ebeigarts][]
@@ -6,7 +6,7 @@ xml.tag! "soap:Envelope", "xmlns:soap" => 'http://schemas.xmlsoap.org/soap/envel
6
6
  xml.tag! "soap:Body" do
7
7
  key = "tns:#{@operation}#{WashOut::Engine.camelize_wsdl ? 'Response' : '_response'}"
8
8
 
9
- xml.tag! key do
9
+ xml.tag! @action_spec[:response_tag] do
10
10
  wsdl_data xml, result
11
11
  end
12
12
  end
@@ -104,9 +104,9 @@ module WashOut
104
104
 
105
105
  # Render a SOAP response.
106
106
  def _render_soap(result, options)
107
- @namespace = WashOut::Engine.namespace
108
- @operation = soap_action = request.env['wash_out.soap_action']
109
- action_spec = self.class.soap_actions[soap_action][:out]
107
+ @namespace = WashOut::Engine.namespace
108
+ @operation = soap_action = request.env['wash_out.soap_action']
109
+ @action_spec = self.class.soap_actions[soap_action]
110
110
 
111
111
  result = { 'value' => result } unless result.is_a? Hash
112
112
  result = HashWithIndifferentAccess.new(result)
@@ -151,7 +151,7 @@ module WashOut
151
151
 
152
152
  render :template => 'wash_with_soap/response',
153
153
  :layout => false,
154
- :locals => { :result => inject.call(result, action_spec) },
154
+ :locals => { :result => inject.call(result, @action_spec[:out]) },
155
155
  :content_type => 'text/xml'
156
156
  end
157
157
 
@@ -24,10 +24,14 @@ module WashOut
24
24
  end
25
25
  end
26
26
 
27
+ default_response_tag = WashOut::Engine.camelize_wsdl ? 'Response' : '_response'
28
+ default_response_tag = "tns:#{action}#{default_response_tag}"
29
+
27
30
  self.soap_actions[action] = {
28
- :in => WashOut::Param.parse_def(options[:args]),
29
- :out => WashOut::Param.parse_def(options[:return]),
30
- :to => options[:to] || action
31
+ :in => WashOut::Param.parse_def(options[:args]),
32
+ :out => WashOut::Param.parse_def(options[:return]),
33
+ :to => options[:to] || action,
34
+ :response_tag => options[:response_tag] || default_response_tag
31
35
  }
32
36
  end
33
37
  end
@@ -1,3 +1,3 @@
1
1
  module WashOut
2
- VERSION = "0.5.3"
2
+ VERSION = "0.5.4"
3
3
  end
@@ -136,6 +136,17 @@ describe WashOut do
136
136
  }.should raise_exception(Savon::SOAP::Fault)
137
137
  end
138
138
 
139
+ it "respects :response_tag option" do
140
+ mock_controller do
141
+ soap_action "specific", :response_tag => "test", :return => :string
142
+ def specific
143
+ render :soap => "test"
144
+ end
145
+ end
146
+
147
+ client.request(:specific).to_hash.should == {:test => {:value=>"test"}}
148
+ end
149
+
139
150
  it "should handle snakecase option properly" do
140
151
  WashOut::Engine.snakecase_input = false
141
152
  WashOut::Engine.camelize_wsdl = false
metadata CHANGED
@@ -1,172 +1,133 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: wash_out
3
- version: !ruby/object:Gem::Version
4
- hash: 1063984129097862891
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.4
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 5
9
- - 3
10
- version: 0.5.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Boris Staal
14
9
  - Peter Zotov
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2012-12-01 00:00:00 Z
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
13
+ date: 2012-12-11 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
22
16
  name: nori
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70206231773920 !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 2002549777813010636
30
- segments:
31
- - 0
32
- version: "0"
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
33
23
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: savon
37
24
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *70206231773920
26
+ - !ruby/object:Gem::Dependency
27
+ name: savon
28
+ requirement: &70206231773180 !ruby/object:Gem::Requirement
39
29
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 2002549777813010636
44
- segments:
45
- - 0
46
- version: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
47
34
  type: :development
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: rspec-rails
51
35
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *70206231773180
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec-rails
39
+ requirement: &70206231772680 !ruby/object:Gem::Requirement
53
40
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 2002549777813010636
58
- segments:
59
- - 0
60
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
61
45
  type: :development
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: guard
65
46
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ version_requirements: *70206231772680
48
+ - !ruby/object:Gem::Dependency
49
+ name: guard
50
+ requirement: &70206231772160 !ruby/object:Gem::Requirement
67
51
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 2002549777813010636
72
- segments:
73
- - 0
74
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
75
56
  type: :development
76
- version_requirements: *id004
77
- - !ruby/object:Gem::Dependency
78
- name: guard-rspec
79
57
  prerelease: false
80
- requirement: &id005 !ruby/object:Gem::Requirement
58
+ version_requirements: *70206231772160
59
+ - !ruby/object:Gem::Dependency
60
+ name: guard-rspec
61
+ requirement: &70206231771680 !ruby/object:Gem::Requirement
81
62
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 2002549777813010636
86
- segments:
87
- - 0
88
- version: "0"
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
89
67
  type: :development
90
- version_requirements: *id005
91
- - !ruby/object:Gem::Dependency
92
- name: rb-inotify
93
68
  prerelease: false
94
- requirement: &id006 !ruby/object:Gem::Requirement
69
+ version_requirements: *70206231771680
70
+ - !ruby/object:Gem::Dependency
71
+ name: rb-inotify
72
+ requirement: &70206231771200 !ruby/object:Gem::Requirement
95
73
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 2002549777813010636
100
- segments:
101
- - 0
102
- version: "0"
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
103
78
  type: :development
104
- version_requirements: *id006
105
- - !ruby/object:Gem::Dependency
106
- name: rb-fsevent
107
79
  prerelease: false
108
- requirement: &id007 !ruby/object:Gem::Requirement
80
+ version_requirements: *70206231771200
81
+ - !ruby/object:Gem::Dependency
82
+ name: rb-fsevent
83
+ requirement: &70206231770680 !ruby/object:Gem::Requirement
109
84
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- hash: 2002549777813010636
114
- segments:
115
- - 0
116
- version: "0"
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
117
89
  type: :development
118
- version_requirements: *id007
119
- - !ruby/object:Gem::Dependency
120
- name: appraisal
121
90
  prerelease: false
122
- requirement: &id008 !ruby/object:Gem::Requirement
91
+ version_requirements: *70206231770680
92
+ - !ruby/object:Gem::Dependency
93
+ name: appraisal
94
+ requirement: &70206231770140 !ruby/object:Gem::Requirement
123
95
  none: false
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- hash: 2002549777813010636
128
- segments:
129
- - 0
130
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
131
100
  type: :development
132
- version_requirements: *id008
133
- - !ruby/object:Gem::Dependency
134
- name: tzinfo
135
101
  prerelease: false
136
- requirement: &id009 !ruby/object:Gem::Requirement
102
+ version_requirements: *70206231770140
103
+ - !ruby/object:Gem::Dependency
104
+ name: tzinfo
105
+ requirement: &70206231769520 !ruby/object:Gem::Requirement
137
106
  none: false
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- hash: 2002549777813010636
142
- segments:
143
- - 0
144
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
145
111
  type: :development
146
- version_requirements: *id009
147
- - !ruby/object:Gem::Dependency
148
- name: pry
149
112
  prerelease: false
150
- requirement: &id010 !ruby/object:Gem::Requirement
113
+ version_requirements: *70206231769520
114
+ - !ruby/object:Gem::Dependency
115
+ name: pry
116
+ requirement: &70206231768740 !ruby/object:Gem::Requirement
151
117
  none: false
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- hash: 2002549777813010636
156
- segments:
157
- - 0
158
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
159
122
  type: :development
160
- version_requirements: *id010
123
+ prerelease: false
124
+ version_requirements: *70206231768740
161
125
  description: Dead simple Rails 3 SOAP server library
162
126
  email: boris@roundlake.ru
163
127
  executables: []
164
-
165
128
  extensions: []
166
-
167
129
  extra_rdoc_files: []
168
-
169
- files:
130
+ files:
170
131
  - .gitignore
171
132
  - .rspec
172
133
  - .travis.yml
@@ -229,36 +190,26 @@ files:
229
190
  - wash_out.gemspec
230
191
  homepage: http://roundlake.github.com/wash_out/
231
192
  licenses: []
232
-
233
193
  post_install_message:
234
194
  rdoc_options: []
235
-
236
- require_paths:
195
+ require_paths:
237
196
  - lib
238
- required_ruby_version: !ruby/object:Gem::Requirement
197
+ required_ruby_version: !ruby/object:Gem::Requirement
239
198
  none: false
240
- requirements:
241
- - - ">="
242
- - !ruby/object:Gem::Version
243
- hash: 2002549777813010636
244
- segments:
245
- - 0
246
- version: "0"
247
- required_rubygems_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ! '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
248
204
  none: false
249
- requirements:
250
- - - ">="
251
- - !ruby/object:Gem::Version
252
- hash: 2002549777813010636
253
- segments:
254
- - 0
255
- version: "0"
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
256
209
  requirements: []
257
-
258
210
  rubyforge_project:
259
- rubygems_version: 1.8.24
211
+ rubygems_version: 1.8.15
260
212
  signing_key:
261
213
  specification_version: 3
262
214
  summary: Dead simple Rails 3 SOAP server library
263
215
  test_files: []
264
-