# File lib/uri_template/colon.rb, line 169 def extract(uri) md = self.to_r.match(uri) return nil unless md result = {} splat = [] self.tokens.select{|tk| tk.kind_of? URITemplate::Expression }.each_with_index do |tk,i| if tk.kind_of? Token::Splat splat << md[i+1] result['splat'] = splat unless result.key? 'splat' else result[tk.name] = Utils.unescape_url( md[i+1] ) end end if block_given? return yield(result) end return result end