Method: Rack::Cors::Resource#initialize

Defined in:
lib/rack/cors/resource.rb

#initialize(public_resource, path, opts = {}) ⇒ Resource

Returns a new instance of Resource.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rack/cors/resource.rb', line 12

def initialize(public_resource, path, opts = {})
  raise CorsMisconfigurationError if public_resource && opts[:credentials] == true

  self.path         = path
  self.credentials  = public_resource ? false : (opts[:credentials] == true)
  self.max_age      = opts[:max_age] || 7200
  self.pattern      = compile(path)
  self.if_proc      = opts[:if]
  self.vary_headers = opts[:vary] && [opts[:vary]].flatten
  @public_resource  = public_resource

  self.headers = case opts[:headers]
                 when :any then :any
                 when nil then nil
                 else
                   [opts[:headers]].flatten.collect(&:downcase)
                 end

  self.methods = case opts[:methods]
                 when :any then i[get head post put patch delete options]
                 else
                   ensure_enum(opts[:methods]) || [:get]
                 end.map(&:to_s)

  self.expose = opts[:expose] ? [opts[:expose]].flatten : nil
end