Sha256: 17371c0f3f429156d0d76f970f59e5b97c54a0799f1d6d4c73e65465cd2abe09
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
module Rswag module Ui class Middleware < Rack::Static def initialize(app, config) @config = config super(app, urls: [ '' ], root: config.assets_root ) end def call(env) if base_path?(env) redirect_uri = env['SCRIPT_NAME'].chomp('/') + '/index.html' return [ 301, { 'Location' => redirect_uri }, [ ] ] end if index_path?(env) return [ 200, { 'Content-Type' => 'text/html' }, [ render_template ] ] end super end private def base_path?(env) env['REQUEST_METHOD'] == "GET" && env['PATH_INFO'] == "/" end def index_path?(env) env['REQUEST_METHOD'] == "GET" && env['PATH_INFO'] == "/index.html" end def render_template file = File.new(template_filename) template = ERB.new(file.read) template.result(@config.get_binding) end def template_filename @config.template_locations.find { |filename| File.exist?(filename) } end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rswag-ui-2.6.0 | lib/rswag/ui/middleware.rb |
rswag-ui-2.5.1 | lib/rswag/ui/middleware.rb |
rswag-ui-2.5.1.rc1 | lib/rswag/ui/middleware.rb |