I've been working on a per-action Rack-based after_filter-like facility, and I thought others might like to see the experiment (and I do consider it experimental). It's a plugin called after_middles, at:
It works like this (assuming Rails 2.3/edge):
# Define something like this somewhere: class MyRackApp def call(env) # you already have @app here for the # middleware chain do_stuff... @app.call(env) end end
# Then in your controller: class ThingsController < ApplicationController after_middle MyRackApp, :only => :show def show ... end end
It maintains its own middleware stack, and after_middle itself is just a wrapper around before_filter that adds to that stack.
I'm not sure yet how useful it will be (either for adding functionality or for speed), except it's already served one of its purposes, namely to help me learn more about the recent controller code and the implementation of the middleware integration. Anyway, if interested, have a look, and let me know if you have any comments.