Module: Philiprehberger::HeaderKit::Cors
- Defined in:
- lib/philiprehberger/header_kit/cors.rb
Class Method Summary collapse
- .build(origin:, methods: ['GET'], headers: [], max_age: nil, credentials: false, expose: []) ⇒ Object
- .parse(headers) ⇒ Object
Class Method Details
.build(origin:, methods: ['GET'], headers: [], max_age: nil, credentials: false, expose: []) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/philiprehberger/header_kit/cors.rb', line 17 def build(origin:, methods: ['GET'], headers: [], max_age: nil, credentials: false, expose: []) result = {} result['Access-Control-Allow-Origin'] = origin result['Access-Control-Allow-Methods'] = Array(methods).join(', ') result['Access-Control-Allow-Headers'] = Array(headers).join(', ') unless headers.empty? result['Access-Control-Max-Age'] = max_age.to_s if max_age result['Access-Control-Allow-Credentials'] = 'true' if credentials result['Access-Control-Expose-Headers'] = Array(expose).join(', ') unless expose.empty? result end |
.parse(headers) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/philiprehberger/header_kit/cors.rb', line 8 def parse(headers) result = {} result[:origin] = headers['Origin'] || headers['origin'] result[:method] = headers['Access-Control-Request-Method'] || headers['access-control-request-method'] request_headers = headers['Access-Control-Request-Headers'] || headers['access-control-request-headers'] result[:headers] = request_headers&.split(',')&.map(&:strip) || [] result end |