Class: BrainzLab::DevTools::Middleware::AssetServer

Inherits:
Object
  • Object
show all
Defined in:
lib/brainzlab/devtools/middleware/asset_server.rb

Constant Summary collapse

MIME_TYPES =
{
  '.css' => 'text/css; charset=utf-8',
  '.js' => 'application/javascript; charset=utf-8',
  '.svg' => 'image/svg+xml',
  '.png' => 'image/png',
  '.woff2' => 'font/woff2'
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ AssetServer

Returns a new instance of AssetServer.



15
16
17
# File 'lib/brainzlab/devtools/middleware/asset_server.rb', line 15

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/brainzlab/devtools/middleware/asset_server.rb', line 19

def call(env)
  return @app.call(env) unless DevTools.enabled?
  return @app.call(env) if env['REQUEST_METHOD'] == 'OPTIONS'

  path = env['PATH_INFO']
  asset_prefix = DevTools.asset_path

  if path.start_with?("#{asset_prefix}/")
    serve_asset(path.sub("#{asset_prefix}/", ''))
  else
    @app.call(env)
  end
end