class MkRepo::Client
Constants
- ATTRIBUTES
- BASE_URLS
Attributes
provider[R]
uri[R]
Public Class Methods
new(provider, &blk)
click to toggle source
# File lib/mk_repo/client.rb, line 22 def initialize(provider, &blk) @provider = provider @uri = URI.parse(url % [user, repo_name]) instance_eval(&blk) end
Public Instance Methods
create!()
click to toggle source
# File lib/mk_repo/client.rb, line 28 def create! Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http| Net::HTTP::Post.new(uri.request_uri, headers).tap do |req| req.body = body req.basic_auth(user, token) if github? response = http.request(req) response_json = JSON.parse(response.body, symbolize_names: true) if response.kind_of?(Net::HTTPSuccess) $stdout.puts response_json[:clone_url] else error_message = response_json[:errors].first[:message] raise StandardError, "#{response.code} Unable to create repository: #{error_message}" end end end end
Private Instance Methods
body()
click to toggle source
# File lib/mk_repo/client.rb, line 68 def body { "name" => repo_name }.to_json if github? end
headers()
click to toggle source
# File lib/mk_repo/client.rb, line 72 def headers { "Content-Type" => "text/json" } end
url()
click to toggle source
# File lib/mk_repo/client.rb, line 64 def url BASE_URLS[provider] end