Sha256: 48803781b8126acc0b6cba0532c88c050a584e7cb75f9a5120009a9ffd57c093
Contents?: true
Size: 871 Bytes
Versions: 1
Compression:
Stored size: 871 Bytes
Contents
module DeviseTokenAuth::Url def self.generate(url, params = {}) uri = URI(url) res = "#{uri.scheme}://#{uri.host}" res += ":#{uri.port}" if (uri.port and uri.port != 80 and uri.port != 443) res += "#{uri.path}" if uri.path query = [uri.query, params.to_query].reject(&:blank?).join('&') res += "?#{query}" res += "##{uri.fragment}" if uri.fragment return res end def self.whitelisted?(url) !!DeviseTokenAuth.redirect_whitelist.find { |pattern| !!Wildcat.new(pattern).match(url) } end # wildcard convenience class class Wildcat def self.parse_to_regex(str) escaped = Regexp.escape(str).gsub('\*','.*?') Regexp.new("^#{escaped}$", Regexp::IGNORECASE) end def initialize(str) @regex = self.class.parse_to_regex(str) end def match(str) !!@regex.match(str) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
devise_token_auth-0.1.40 | lib/devise_token_auth/url.rb |