diff options
| author | Jack Nagel | 2014-02-13 17:39:53 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-02-13 17:39:53 -0500 |
| commit | f5ceae9f94b8c3b0bdfca8fa8dc5715e1f79b7e0 (patch) | |
| tree | 296b2b1f612b4227e422621c6acd4c70bfd6b8e3 /Library | |
| parent | 0b2c6e87f191b2ef5ad404c8d16f507becbd53cf (diff) | |
| download | brew-f5ceae9f94b8c3b0bdfca8fa8dc5715e1f79b7e0.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) |
