Class: Wsv::Cors

Inherits:
Object
  • Object
show all
Defined in:
lib/wsv/cors.rb

Constant Summary collapse

ALLOW_ORIGIN =
"*"
ALLOW_METHODS =
%w[GET HEAD OPTIONS].freeze
MAX_AGE =
"86400"

Instance Method Summary collapse

Instance Method Details

#allow_methodsObject



11
12
13
# File 'lib/wsv/cors.rb', line 11

def allow_methods
  ALLOW_METHODS
end

#overlay(response) ⇒ Object



25
26
27
28
29
30
# File 'lib/wsv/cors.rb', line 25

def overlay(response)
  response.with_headers(
    "Access-Control-Allow-Origin" => ALLOW_ORIGIN,
    "Vary" => "Origin"
  )
end

#preflight(request) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/wsv/cors.rb', line 15

def preflight(request)
  headers = {
    "Access-Control-Allow-Methods" => ALLOW_METHODS.join(", "),
    "Access-Control-Max-Age" => MAX_AGE
  }
  requested = request.headers["access-control-request-headers"]
  headers["Access-Control-Allow-Headers"] = requested if requested
  Response.new(status: 204, headers: headers)
end