diff options
| author | Jack Nagel | 2014-02-13 17:39:53 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-02-13 17:39:53 -0500 |
| commit | 3cce671702f2a2b9652d1570b7e063544f3069cf (patch) | |
| tree | cdc80b4b5684981c3b4cb94a39e4638351a95577 /Library | |
| parent | df3139a792fd30b1aee265d808d136606ccb526a (diff) | |
| download | homebrew-3cce671702f2a2b9652d1570b7e063544f3069cf.tar.bz2 | |
Allow passing arbitrary qualifiers to issue search
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/utils.rb | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 13861a6de..23778605e 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -288,12 +288,27 @@ module GitHub extend self raise Error, "Failed to parse JSON response\n#{e.message}", e.backtrace end - def issues_matching(query) + def issues_matching(query, qualifiers={}) uri = ISSUES_URI.dup - uri.query = "q=#{uri_escape(query)}+repo:Homebrew/homebrew+in:title&per_page=100" + uri.query = build_query_string(query, qualifiers) open(uri) { |json| json["items"] } end + def build_query_string(query, qualifiers) + s = "q=#{uri_escape(query)}+" + s << build_search_qualifier_string(qualifiers) + s << "&per_page=100" + end + + def build_search_qualifier_string(qualifiers) + { + :repo => "Homebrew/homebrew", + :in => "title", + }.update(qualifiers).map { |qualifier, value| + "#{qualifier}:#{value}" + }.join("+") + end + def uri_escape(query) if URI.respond_to?(:encode_www_form_component) URI.encode_www_form_component(query) |
