Using Rack Middleware for good and evil
So we all know that Rack is awesome, and that we can use Rack::Middleware for all sorts of things: debugging, caching and a whole host more.
What all these have in common (apart from maybe Rack::Evil) is that they’re all helpful. They all make writing Rack applications easier. Not my Middleware though.
module Rack class Shuffler def initialize(app) @app = app @responses =  end def call(env) @responses << @app.call(env) @responses[rand(@responses.size)] ensure @responses.delete_at(rand(@responses.size)) if @responses.size > 100 end end end
I suggest you add it to a colleague’s app late on a Friday afternoon, and see how long it takes to drive them to insanity.