From 08c581d5e7f9128634d762e686347bcbbabcae5a Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sun, 7 Sep 2014 17:33:51 -0500 Subject: [PATCH] gist-logs: extract methods --- Library/Contributions/cmd/brew-gist-logs.rb | 28 ++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/Library/Contributions/cmd/brew-gist-logs.rb b/Library/Contributions/cmd/brew-gist-logs.rb index b2357ef60c..8a3a02eab0 100755 --- a/Library/Contributions/cmd/brew-gist-logs.rb +++ b/Library/Contributions/cmd/brew-gist-logs.rb @@ -62,7 +62,7 @@ def http end end -def post path, data +def make_request(path, data) request = Net::HTTP::Post.new(path) request['User-Agent'] = HOMEBREW_USER_AGENT request['Content-Type'] = 'application/json' @@ -70,18 +70,28 @@ def post path, data request['Authorization'] = "token #{HOMEBREW_GITHUB_API_TOKEN}" end request.body = Utils::JSON.dump(data) - response = http.request(request) - raise "HTTP #{response.code} #{response.message}" if response.code != "201" + request +end - if !response.body.respond_to?(:force_encoding) - body = response.body - elsif response["Content-Type"].downcase == "application/json; charset=utf-8" - body = response.body.dup.force_encoding(Encoding::UTF_8) +def post(path, data) + request = make_request(path, data) + + case response = http.request(request) + when Net::HTTPCreated + Utils::JSON.load get_body(response) else - body = response.body.encode(Encoding::UTF_8, :undef => :replace) + raise "HTTP #{response.code} #{response.message} (expected 201)" end +end - Utils::JSON.load(body) +def get_body(response) + if !response.body.respond_to?(:force_encoding) + response.body + elsif response["Content-Type"].downcase == "application/json; charset=utf-8" + response.body.dup.force_encoding(Encoding::UTF_8) + else + response.body.encode(Encoding::UTF_8, :undef => :replace) + end end if ARGV.formulae.length != 1