From c00dbf3e41f88f5752affbd8f422a175f5dc654c Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Wed, 11 Jan 2012 20:49:08 -0600 Subject: search: return matches from open pull requests When search can't find any local results, hit the GitHub API and search the titles of pending pull requests. This will help people find the many proposed formulae and prevent them from wasting time duplicating them. Closes #9018. Signed-off-by: Jack Nagel --- Library/Homebrew/utils.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'Library/Homebrew/utils.rb') diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 97fa46f7b..71417e61a 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -427,4 +427,28 @@ module GitHub extend self rescue [] end + + def find_pull_requests rx + require 'open-uri' + require 'vendor/multi_json' + + pulls = [] + uri = URI.parse("https://api.github.com/repos/mxcl/homebrew/pulls") + uri.query = "per_page=100" + + open uri do |f| + MultiJson.decode((f.read)).each do |pull| + pulls << pull['html_url'] if rx.match pull['title'] + end + + uri = if f.meta['link'] =~ /rel="next"/ + f.meta['link'].slice(URI.regexp) + else + nil + end + end while uri + pulls + rescue + [] + end end -- cgit v1.2.3