# File lib/rack/cors.rb, line 101 def initialize @origins = [] @resources = [] @public_resources = false end
# File lib/rack/cors.rb, line 127 def allow_origin?(source,env = {}) return true if public_resources? return !! @origins.detect do |origin| if origin.is_a?(Proc) origin.call(source,env) else origin === source end end end
# File lib/rack/cors.rb, line 138 def find_resource(path) @resources.detect{|r| r.match?(path)} end
# File lib/rack/cors.rb, line 107 def origins(*args,&blk) @origins = args.flatten.collect do |n| case n when Regexp, /^https?:\/\// then n when 'file://' then n when '*' then @public_resources = true; n else ["http://#{n}", "https://#{n}"] end end.flatten @origins.push(blk) if blk end
# File lib/rack/cors.rb, line 123 def public_resources? @public_resources end
# File lib/rack/cors.rb, line 119 def resource(path, opts={}) @resources << Resource.new(public_resources?, path, opts) end