class Cors::Config
Constants
- VERSION
Attributes
app[RW]
user_config[RW]
Public Class Methods
new(app, user_config = 'config/cors.yml')
click to toggle source
# File lib/cors/config.rb, line 10 def initialize(app, user_config = 'config/cors.yml') @app = app @user_config = user_config end
Public Instance Methods
call(env)
click to toggle source
# File lib/cors/config.rb, line 15 def call(env) config = configure_cors return @app.call(env) if config.empty? cors = generate_cors_rules_from_config(config) return @app.call(env) if cors.nil? cors.call(env) rescue => error raise Error.new("Unexpected error #{error.message}") end
Private Instance Methods
configure_cors()
click to toggle source
# File lib/cors/config.rb, line 37 def configure_cors return {} unless File.exist?(@user_config) contents = YAML.load_file(@user_config) return {} if contents == false contents end
generate_cors_rules_from_config(config)
click to toggle source
# File lib/cors/config.rb, line 26 def generate_cors_rules_from_config(config) cors = Rack::Cors.new(@app, {}) do config['cors'].each { |rule| allow do origins rule[1]['origins'] resource rule[1]['resource'], :headers => rule[1]['headers'].to_sym, :methods => rule[1]['headers'].to_sym end } end end