module Charcoal::CrossOrigin
Public Class Methods
included(klass)
click to toggle source
# File lib/charcoal/cross_origin.rb, line 5 def self.included(klass) klass.extend(ClassMethods) if klass.respond_to?(:around_action) klass.around_action :set_cors_headers_filter, if: :cors_allowed? else klass.around_filter :set_cors_headers_filter, if: :cors_allowed? end end
Protected Instance Methods
allowed_origin()
click to toggle source
# File lib/charcoal/cross_origin.rb, line 49 def allowed_origin value = Charcoal.configuration["allow-origin"] value.respond_to?(:call) ? value.call(self) : value.to_s end
cors_allowed?()
click to toggle source
# File lib/charcoal/cross_origin.rb, line 33 def cors_allowed? self.class.cors_allowed?(self, params[:action]) end
credentials_allowed?()
click to toggle source
# File lib/charcoal/cross_origin.rb, line 54 def credentials_allowed? value = Charcoal.configuration["credentials"] value.respond_to?(:call) ? value.call(self) : value end
set_cors_headers()
click to toggle source
# File lib/charcoal/cross_origin.rb, line 43 def set_cors_headers headers["Access-Control-Allow-Origin"] = allowed_origin headers["Access-Control-Allow-Credentials"] = "true" if credentials_allowed? headers["Access-Control-Expose-Headers"] = Charcoal.configuration["expose-headers"].join(",") end
set_cors_headers_filter() { || ... }
click to toggle source
# File lib/charcoal/cross_origin.rb, line 37 def set_cors_headers_filter yield ensure set_cors_headers end