aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-02-13 17:39:53 -0500
committerJack Nagel2014-02-13 17:39:53 -0500
commit3cce671702f2a2b9652d1570b7e063544f3069cf (patch)
treecdc80b4b5684981c3b4cb94a39e4638351a95577 /Library
parentdf3139a792fd30b1aee265d808d136606ccb526a (diff)
downloadhomebrew-3cce671702f2a2b9652d1570b7e063544f3069cf.tar.bz2
Allow passing arbitrary qualifiers to issue search
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/utils.rb19
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)