class Navigable::Server::CORS::Middleware

Public Class Methods

new(app) click to toggle source
# File lib/navigable/server/cors.rb, line 21
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/navigable/server/cors.rb, line 25
def call(env)
  return @app.call(env) unless cors_configured? && cors_request?(env)

  cors_response
end

Private Instance Methods

cors_configured?() click to toggle source
# File lib/navigable/server/cors.rb, line 33
def cors_configured?
  !Navigable::Server::CORS.headers.empty?
end
cors_request?(env) click to toggle source
# File lib/navigable/server/cors.rb, line 37
def cors_request?(env)
  env['REQUEST_METHOD'] == 'OPTIONS'
end
cors_response() click to toggle source
# File lib/navigable/server/cors.rb, line 41
def cors_response
  [200, default_headers.merge(Navigable::Server::CORS.headers), []]
end
default_headers() click to toggle source
# File lib/navigable/server/cors.rb, line 45
def default_headers
  {
    'Content-Type' => 'text/plain',
    'Content-Length' => '0'
  }
end