module Sinatra::Cors

Public Class Methods

registered(app) click to toggle source
# File lib/sinatra/cors.rb, line 117
def self.registered(app)
  app.helpers Cors::Helpers

  app.set :allow_origin, ""
  app.set :allow_methods, ""
  app.set :allow_headers, ""
  app.disable :max_age
  app.disable :expose_headers
  app.disable :allow_credentials

  app.set(:is_cors_preflight) do |bool|
    condition { is_cors_request? && is_preflight_request? == bool }
  end

  app.options "*", is_cors_preflight: true do
    allow = allowed_methods

    pass if allow.size == 1

    response.headers["Allow"] = allow.join ","
  end

  app.after do
    cors
  end
end