module Resourceful::Default::Callbacks
This module is mostly meant to be used by the make_resourceful default actions. It provides various methods that declare where callbacks set in the make_resourceful
block, like Builder#before
and Builder#response_for
, should be called.
Public Instance Methods
after(event)
click to toggle source
Calls any after
callbacks set in the make_resourceful
block for the given event.
# File lib/resourceful/default/callbacks.rb, line 16 def after(event) resourceful_fire(:after, event.to_sym) end
before(event)
click to toggle source
Calls any before
callbacks set in the make_resourceful
block for the given event.
# File lib/resourceful/default/callbacks.rb, line 11 def before(event) resourceful_fire(:before, event.to_sym) end
response_for(event)
click to toggle source
Calls any response_for
callbacks set in the make_resourceful
block for the given event. Note that these aren't called directly, but instead passed along to Rails' respond_to method.
# File lib/resourceful/default/callbacks.rb, line 23 def response_for(event) if responses = self.class.resourceful_responses[event.to_sym] respond_to do |format| responses.each do |key, value| format.send(key, &scope(value)) end end end end
scope(block)
click to toggle source
Returns a block identical to the given block, but in the context of the current controller. The returned block accepts no arguments, even if the given block accepted them.
# File lib/resourceful/default/callbacks.rb, line 37 def scope(block) proc do instance_eval(&(block || proc {})) end end
Private Instance Methods
resourceful_fire(type, name)
click to toggle source
# File lib/resourceful/default/callbacks.rb, line 45 def resourceful_fire(type, name) callbacks = self.class.resourceful_callbacks[type][name] || [] callbacks.each { |callback| scope(callback).call } end