class Giddyup::Util

Public Class Methods

post_files(files) click to toggle source
# File lib/giddyup/util.rb, line 7
def self.post_files(files)
  manifest_files = files.inject({}) do |acc, file|
    acc.merge!({File.basename(file) => {"content" => File.open(file).readlines.inject(""){ |acc, s| acc << s }}})
  end

  params = {
    "description" => "This gist was ★automagically★ generated by giddyup™",
    "public" => true,
    "files" => manifest_files
  }

  uri = URI("https://api.github.com/gists")
  req = Net::HTTP::Post.new(uri.to_s)

  if File.exists?("~/.g-up/credentials")
    auth = YAML::load("~/.g-up/credentials")
    req.basic_auth(auth[:username], auth[:password])
  end

  req.body = params.to_json
  req["content-type"] = "application/json"
  Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
    request = http.request(req)
    puts JSON.parse(request.body)["html_url"]
  end
end