Sha256: 3057d1f5a6cfc7ca829188b947b813e0f10a4bfebc9ae947bdd5ee828e576b07
Contents?: true
Size: 750 Bytes
Versions: 2
Compression:
Stored size: 750 Bytes
Contents
# encoding: UTF-8 require "rack" module Bunch class Middleware def initialize(app, paths_and_options) @app = app @url_map = Rack::Deflater.new(build_url_map(paths_and_options)) end def call(env) response = @url_map.call(env) if response[1]["X-Cascade"] == "pass" @app.call(env) else response end end private def build_url_map(paths_and_options) paths, options_arr = paths_and_options.partition { |k, _| String === k } options = { environment: "development" }.merge(Hash[options_arr]) mapping = Hash[paths.map do |url, directory| [url, Server.new(options.merge(root: directory))] end] Rack::URLMap.new(mapping) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bunch-1.0.0pre3 | lib/bunch/middleware.rb |
bunch-1.0.0pre2 | lib/bunch/middleware.rb |