Unify vocabulary in github module, remove unnecessary logic

Fix duplication bug
This commit is contained in:
Ben Muschol 2017-08-14 12:51:32 -04:00
parent 68cdb550f7
commit 5f8d212ccc
2 changed files with 14 additions and 33 deletions

View File

@ -29,9 +29,9 @@ describe GitHub do
end end
end end
describe "::issues_matching", :needs_network do describe "::search_issues", :needs_network do
it "queries GitHub issues with the passed parameters" do it "queries GitHub issues with the passed parameters" do
results = subject.issues_matching("brew search", repo: "Homebrew/brew", author: "avetamine", is: "closed") results = subject.search_issues("brew search", repo: "Homebrew/brew", author: "avetamine", is: "closed")
expect(results.count).to eq(1) expect(results.count).to eq(1)
expect(results.first["title"]).to eq("brew search : 422 Unprocessable Entity") expect(results.first["title"]).to eq("brew search : 422 Unprocessable Entity")
end end

View File

@ -227,7 +227,7 @@ module GitHub
end end
end end
def issues_matching(query, qualifiers = {}) def search_issues(query, **qualifiers)
search("issues", query, **qualifiers) search("issues", query, **qualifiers)
end end
@ -235,38 +235,27 @@ module GitHub
open(url_to("repos", user, repo)) open(url_to("repos", user, repo))
end end
def search_code(**params) def search_code(**qualifiers)
search("code", **params) search("code", **qualifiers)
end
def uri_escape(query)
if URI.respond_to?(:encode_www_form_component)
URI.encode_www_form_component(query)
else
require "erb"
ERB::Util.url_encode(query)
end
end end
def issues_for_formula(name, options = {}) def issues_for_formula(name, options = {})
tap = options[:tap] || CoreTap.instance tap = options[:tap] || CoreTap.instance
issues_matching(name, state: "open", repo: "#{tap.user}/homebrew-#{tap.repo}") search_issues(name, state: "open", repo: "#{tap.user}/homebrew-#{tap.repo}")
end end
def print_pull_requests_matching(query) def print_pull_requests_matching(query)
return [] if ENV["HOMEBREW_NO_GITHUB_API"] return [] if ENV["HOMEBREW_NO_GITHUB_API"]
open_or_closed_prs = issues_matching(query, type: "pr") open_or_closed_prs = search_issues(query, type: "pr")
open_prs = open_or_closed_prs.select { |i| i["state"] == "open" } open_prs = open_or_closed_prs.select { |i| i["state"] == "open" }
if !open_prs.empty? prs = if !open_prs.empty?
puts "Open pull requests:" puts "Open pull requests:"
prs = open_prs open_prs
elsif !open_or_closed_prs.empty?
puts "Closed pull requests:"
prs = open_or_closed_prs
else else
return [] puts "Closed pull requests:" unless open_or_closed_prs.empty?
open_or_closed_prs
end end
prs.each { |i| puts "#{i["title"]} (#{i["html_url"]})" } prs.each { |i| puts "#{i["title"]} (#{i["html_url"]})" }
@ -280,19 +269,11 @@ module GitHub
def query_string(*main_params, **qualifiers) def query_string(*main_params, **qualifiers)
params_list = main_params params_list = main_params
qualifiers.each do |key, value| params_list += qualifiers.flat_map do |key, value|
if value.is_a? Array Array(value).map { |v| "#{key}:#{v}" }
value.each { |v| params_list << format_parameter(key, v) }
else
params_list << format_parameter(key, value)
end
end end
"q=#{uri_escape(params_list.join(" "))}&per_page=100" "q=#{URI.encode_www_form_component(params_list.join(" "))}&per_page=100"
end
def format_parameter(key, value)
"#{key}:#{value}"
end end
def url_to(*subroutes) def url_to(*subroutes)