Class: FontAssets::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/font_assets/middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, origin, options = {}) ⇒ Middleware

Returns a new instance of Middleware.



7
8
9
10
11
12
# File 'lib/font_assets/middleware.rb', line 7

def initialize(app, origin, options={})
  @app = app
  @origin = origin
  @options = options
  @mime_types = FontAssets::MimeTypes.new(Rack::Mime::MIME_TYPES)
end

Instance Method Details

#access_control_headersObject



14
15
16
17
18
19
20
21
# File 'lib/font_assets/middleware.rb', line 14

def access_control_headers
  {
    "Access-Control-Allow-Origin" => origin,
    "Access-Control-Allow-Methods" => "GET",
    "Access-Control-Allow-Headers" => "x-requested-with",
    "Access-Control-Max-Age" => "3628800"
  }
end

#call(env) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/font_assets/middleware.rb', line 23

def call(env)
  @ssl_request = Rack::Request.new(env).scheme == "https"
  # intercept the "preflight" request
  if env["REQUEST_METHOD"] == "OPTIONS"
    return [200, access_control_headers, []]
  else
    code, headers, body = @app.call(env)
    set_headers! headers, body, env["PATH_INFO"]
    [code, headers, body]
  end
end