Skip to content

Instantly share code, notes, and snippets.

@emad-elsaid
Created March 14, 2014 13:01
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save emad-elsaid/9547245 to your computer and use it in GitHub Desktop.
Save emad-elsaid/9547245 to your computer and use it in GitHub Desktop.
Download your latest 30 Github Gists to local directory
#!/usr/bin/env ruby
require 'open-uri'
require 'json'
print 'Github Username: '
username = gets.chomp
# get gists
puts 'Downloading gists list'
gists_str = open("https://api.github.com/users/#{username}/gists").read
gists = JSON.parse gists_str
gists.each_with_index do |gist, index|
puts "#{index+1}/#{gists.length} Downloading #{gist['url']}"
gist_str = open(gist['url']).read
gist = JSON.parse gist_str
dir = gist["id"]
Dir.mkdir dir unless Dir.exist? dir
gist["files"].each do |file_name, file_value|
File.open("#{dir}/#{file_name}", 'w') { |f| f.write file_value['content']}
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment