class Upfluence::HTTP::Middleware::CORS

Constants

HEADERS

Public Class Methods

new(app, headers = nil) click to toggle source
# File lib/upfluence/http/middleware/cors.rb, line 11
def initialize(app, headers = nil)
  @app = app
  @headers = headers || HEADERS
end

Public Instance Methods

call(env) click to toggle source
# File lib/upfluence/http/middleware/cors.rb, line 16
def call(env)
  status, headers, body = options?(env) ? default_response : @app.call(env)
  [status, merge_headers(headers), body]
end

Private Instance Methods

default_response() click to toggle source
# File lib/upfluence/http/middleware/cors.rb, line 23
def default_response
  [200, {}, ['']]
end
merge_headers(headers) click to toggle source
# File lib/upfluence/http/middleware/cors.rb, line 31
def merge_headers(headers)
  headers.merge(@headers) { |_, x, _| x }
end
options?(env) click to toggle source
# File lib/upfluence/http/middleware/cors.rb, line 27
def options?(env)
  Rack::Request.new(env).options?
end