diff options
Diffstat (limited to 't/file-wrap-to_path.ru')
-rw-r--r-- | t/file-wrap-to_path.ru | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/t/file-wrap-to_path.ru b/t/file-wrap-to_path.ru new file mode 100644 index 0000000..f12e08d --- /dev/null +++ b/t/file-wrap-to_path.ru @@ -0,0 +1,24 @@ +# must be run without Rack::Lint since that clobbers to_path +class Wrapper < Struct.new(:app) + def call(env) + status, headers, body = app.call(env) + body = Body.new(body) if body.respond_to?(:to_path) + [ status, headers, body ] + end + + class Body < Struct.new(:body) + def to_path + body.to_path + end + + def each(&block) + body.each(&block) + end + + def close + ::File.open(ENV['fifo'], 'wb') { |fp| fp.puts "CLOSING" } + end + end +end +use Wrapper +run Rack::File.new(Dir.pwd) |