class Gist::Post
Class that controls a posted Gist
Attributes
source_files[RW]
user[RW]
Public Class Methods
new(filenames, pub = false, description = nil, user = nil)
click to toggle source
# File lib/gist/post.rb, line 7 def initialize(filenames, pub = false, description = nil, user = nil) @user ||= user @public ||= pub @description ||= description ? description : '' @source_files ||= {} populate_source_files(filenames) @http = Net::HTTP.new(Gist::API_URL, Gist::API_PORT) @http.use_ssl = true end
Public Instance Methods
submit(stdin)
click to toggle source
# File lib/gist/post.rb, line 17 def submit(stdin) unless stdin.nil? @source_files['STDIN'] = { 'content' => stdin } end body = { 'files' => @source_files, 'public' => @public, 'description' => @description }.to_json headers ||= {} headers['Authorization'] = "token #{@user.access_token}" unless @user.nil? response = @http.post('/gists', body, headers) JSON.parse(response.body)['html_url'] end
Private Instance Methods
load_code(filename)
click to toggle source
# File lib/gist/post.rb, line 34 def load_code(filename) file = File.open(filename) file_str = '' file.each do |line| file_str << line end file_str end
populate_source_files(filenames)
click to toggle source
# File lib/gist/post.rb, line 43 def populate_source_files(filenames) filenames.each do |filename| @source_files[File.basename(filename)] = { 'content' => load_code(filename) } end end