Invocation interceptors provide a means to execute custom code before and after method invocations on ActionWebService::Base objects.
When running in Direct dispatching mode, ActionController filters should be used for this functionality instead.
The semantics of invocation interceptors are the same as ActionController filters, and accept the same parameters and options.
A before interceptor can also cancel
execution by returning false
, or returning a [false,
"cancel reason"]
array if it wishes to supply a reason for
canceling the request.
Example
class CustomService < ActionWebService::Base before_invocation :intercept_add, :only => [:add] def add(a, b) a + b end private def intercept_add return [false, "permission denied"] # cancel it end end
Options:
- A
- B
- P
Appends the given interceptors
to be called after
method invocation.
Source: show
# File rails/actionwebservice/lib/action_web_service/invocation.rb, line 65 def append_after_invocation(*interceptors, &block) conditions = extract_conditions!(interceptors) interceptors << block if block_given? add_interception_conditions(interceptors, conditions) append_interceptors_to_chain("after", interceptors) end
Appends the given interceptors
to be called before
method invocation.
Source: show
# File rails/actionwebservice/lib/action_web_service/invocation.rb, line 45 def append_before_invocation(*interceptors, &block) conditions = extract_conditions!(interceptors) interceptors << block if block_given? add_interception_conditions(interceptors, conditions) append_interceptors_to_chain("before", interceptors) end
Prepends the given interceptors
to be called after
method invocation.
Source: show
# File rails/actionwebservice/lib/action_web_service/invocation.rb, line 74 def prepend_after_invocation(*interceptors, &block) conditions = extract_conditions!(interceptors) interceptors << block if block_given? add_interception_conditions(interceptors, conditions) prepend_interceptors_to_chain("after", interceptors) end
Prepends the given interceptors
to be called before
method invocation.
Source: show
# File rails/actionwebservice/lib/action_web_service/invocation.rb, line 54 def prepend_before_invocation(*interceptors, &block) conditions = extract_conditions!(interceptors) interceptors << block if block_given? add_interception_conditions(interceptors, conditions) prepend_interceptors_to_chain("before", interceptors) end