# File lib/typhoeus/remote_method.rb, line 82 def compile(path) path ||= "" keys = [] if path.respond_to? :to_str special_chars = %w{. + ( )} pattern = path.gsub(/((:\w+)|[\*#{special_chars.join}])/) do |match| case match when "*" keys << 'splat' "(.*?)" when *special_chars Regexp.escape(match) else keys << $2[1..-1] "([^/?&#]+)" end end [/^#{pattern}$/, keys] elsif path.respond_to? :match [path, keys] else raise TypeError, path end end