Module: ActionWebService::Invocation::InstanceMethods

Defined in:
lib/action_web_service/invocation.rb

Overview

:nodoc:

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.append_features(base) ⇒ Object



128
129
130
131
132
133
134
# File 'lib/action_web_service/invocation.rb', line 128

def self.append_features(base)
  super
  base.class_eval do
    alias_method :perform_invocation_without_interception, :perform_invocation
    alias_method :perform_invocation, :perform_invocation_with_interception
  end
end

Instance Method Details

#after_invocation(name, args, result) ⇒ Object



151
152
153
# File 'lib/action_web_service/invocation.rb', line 151

def after_invocation(name, args, result)
  call_interceptors(self.class.after_invocation_interceptors, [name, args, result])
end

#before_invocation(name, args, &block) ⇒ Object



147
148
149
# File 'lib/action_web_service/invocation.rb', line 147

def before_invocation(name, args, &block)
  call_interceptors(self.class.before_invocation_interceptors, [name, args], &block)
end

#perform_invocation(method_name, params) ⇒ Object



143
144
145
# File 'lib/action_web_service/invocation.rb', line 143

def perform_invocation(method_name, params)
  send(method_name, *params)
end

#perform_invocation_with_interception(method_name, params, &block) ⇒ Object



136
137
138
139
140
141
# File 'lib/action_web_service/invocation.rb', line 136

def perform_invocation_with_interception(method_name, params, &block)
  return if before_invocation(method_name, params, &block) == false
  return_value = perform_invocation_without_interception(method_name, params)
  after_invocation(method_name, params, return_value)
  return_value
end