The run_handler plugin allows r.run to take a block, which is yielded the rack response array, before it returns it as a response.
Additionally, r.run also takes a options hash, and you can provide a
:not_found=>:pass option to keep routing normally if the
rack app returns a 404 response.
plugin :run_handler route do |r| r.on 'a' do # Keep running code if RackAppFoo doesn't return a result r.run RackAppFoo, :not_found=>:pass # Change response status codes before returning. r.run(RackAppBar) do |response| response = 200 if response == 201 end end end
Classes and Modules