aboutsummaryrefslogtreecommitdiffstats
path: root/actionwebservice/lib/action_web_service/protocol/soap_protocol.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionwebservice/lib/action_web_service/protocol/soap_protocol.rb')
-rw-r--r--actionwebservice/lib/action_web_service/protocol/soap_protocol.rb9
1 files changed, 3 insertions, 6 deletions
diff --git a/actionwebservice/lib/action_web_service/protocol/soap_protocol.rb b/actionwebservice/lib/action_web_service/protocol/soap_protocol.rb
index cc3e90a4cc..4bc9d2806e 100644
--- a/actionwebservice/lib/action_web_service/protocol/soap_protocol.rb
+++ b/actionwebservice/lib/action_web_service/protocol/soap_protocol.rb
@@ -40,13 +40,10 @@ module ActionWebService # :nodoc:
param_types.each{ |type| marshaler.register_type(type) } if param_types
qname = XSD::QName.new(marshaler.type_namespace, method_name)
param_def = []
- i = 0
if param_types
- params = params.map do |param|
- param_type = param_types[i]
- param_def << ['in', param_type.name, marshaler.lookup_type(param_type).mapping]
- i += 1
- [param_type.name, marshaler.ruby_to_soap(param)]
+ params = param_types.zip(params).map do |type, param|
+ param_def << ['in', type.name, marshaler.lookup_type(type).mapping]
+ [type.name, marshaler.ruby_to_soap(param)]
end
else
params = []