Sha256: d92b59076dee42d597c9e8f657619547dc6a5087349bca0c0b7a1e560afdd21a

Contents?: true

Size: 685 Bytes

Versions: 9

Compression:

Stored size: 685 Bytes

Contents

module Swagui
  class AssetHandler

    def initialize(path)
      @url_regex = Regexp.union(Regexp.new("^\/swagger-ui"), Regexp.new("^#{path}\/?$"))
      swagger_ui_dir = File.expand_path('../../swagger-ui', File.dirname(__FILE__))

      raise "swagger ui assets directory #{swagger_ui_dir} does not exist"  unless File.directory?(swagger_ui_dir)

      @asset_file_server = Rack::File.new(swagger_ui_dir)
    end

    def handles?(env)
      @url_regex === env["PATH_INFO"]
    end

    def call(env)
      env["PATH_INFO"] = env["PATH_INFO"].gsub(@url_regex, '')
      env["PATH_INFO"] = 'index.html' if env["PATH_INFO"] == ''
      @asset_file_server.call(env)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
swagui-0.5.4 lib/swagui/asset_handler.rb
swagui-0.5.3 lib/swagui/asset_handler.rb
swagui-0.5.2 lib/swagui/asset_handler.rb
swagui-0.5.1 lib/swagui/asset_handler.rb
swagui-0.4.1 lib/swagui/asset_handler.rb
swagui-0.4.0 lib/swagui/asset_handler.rb
swagui-0.3.0 lib/swagui/asset_handler.rb
swagui-0.2.1 lib/swagui/asset_handler.rb
swagui-0.2.0 lib/swagui/asset_handler.rb