class Goliath::Rack::Cors

Constants

DEFAULT_OPTIONS

Public Class Methods

new(app, options = {}) click to toggle source
Calls superclass method
# File lib/grass/goliath/rack/cors.rb, line 15
def initialize(app, options = {})
  super(app)
  @options = DEFAULT_OPTIONS.merge(options)
end

Public Instance Methods

call(env) click to toggle source
Calls superclass method
# File lib/grass/goliath/rack/cors.rb, line 20
def call(env)
  if env['REQUEST_METHOD'] == 'OPTIONS'
    [200, cors_headers, []]
  else
    super(env)
  end
end
post_process(env, status, headers, body) click to toggle source
# File lib/grass/goliath/rack/cors.rb, line 28
def post_process(env, status, headers, body)
  [status, cors_headers.merge(headers), body]
end

Private Instance Methods

cors_headers() click to toggle source
# File lib/grass/goliath/rack/cors.rb, line 34
def cors_headers
  headers = {}
  headers['Access-Control-Allow-Origin'] = @options[:origin]
  headers['Access-Control-Allow-Methods'] = @options[:methods]
  headers['Access-Control-Allow-Headers'] = @options[:headers]
  headers['Access-Control-Expose-Headers'] = @options[:expose_headers]
  headers
end