diff options
Diffstat (limited to 'actionwebservice/lib')
-rw-r--r-- | actionwebservice/lib/action_web_service.rb | 1 | ||||
-rw-r--r-- | actionwebservice/lib/action_web_service/dispatcher/abstract.rb | 12 |
2 files changed, 9 insertions, 4 deletions
diff --git a/actionwebservice/lib/action_web_service.rb b/actionwebservice/lib/action_web_service.rb index 566a286a25..874518e0b1 100644 --- a/actionwebservice/lib/action_web_service.rb +++ b/actionwebservice/lib/action_web_service.rb @@ -59,6 +59,7 @@ ActionController::Base.class_eval do include ActionWebService::Container::Direct include ActionWebService::Container::Delegated include ActionWebService::Container::ActionController + include ActionWebService::Invocation include ActionWebService::Dispatcher include ActionWebService::Dispatcher::ActionController include ActionWebService::Scaffolding diff --git a/actionwebservice/lib/action_web_service/dispatcher/abstract.rb b/actionwebservice/lib/action_web_service/dispatcher/abstract.rb index e60f30a05b..9f2f474ffb 100644 --- a/actionwebservice/lib/action_web_service/dispatcher/abstract.rb +++ b/actionwebservice/lib/action_web_service/dispatcher/abstract.rb @@ -28,16 +28,20 @@ module ActionWebService # :nodoc: @method_params = invocation.method_ordered_params arity = method(invocation.api_method.name).arity rescue 0 if arity < 0 || arity > 0 - return_value = self.__send__(invocation.api_method.name, *@method_params) + params = @method_params else - return_value = self.__send__(invocation.api_method.name) + params = [] end - web_service_create_response(invocation.protocol, invocation.protocol_options, invocation.api, invocation.api_method, return_value) + web_service_filtered_invoke(invocation, params) end def web_service_delegated_invoke(invocation) + web_service_filtered_invoke(invocation, invocation.method_ordered_params) + end + + def web_service_filtered_invoke(invocation, params) cancellation_reason = nil - return_value = invocation.service.perform_invocation(invocation.api_method.name, invocation.method_ordered_params) do |x| + return_value = invocation.service.perform_invocation(invocation.api_method.name, params) do |x| cancellation_reason = x end if cancellation_reason |