Skip to content

Instantly share code, notes, and snippets.

@carlzulauf
Forked from NakedMoleRatScientist/gist:7670499
Last active December 29, 2015 12:29
Show Gist options
  • Save carlzulauf/7670553 to your computer and use it in GitHub Desktop.
Save carlzulauf/7670553 to your computer and use it in GitHub Desktop.
require "rubygems"
require "gems"
require "json"
require "retryable"
gems = []
File.open("gems", "r") do |f|
while (l = f.gets) do
gems << l.strip()
end
end
i = 0
file = File.open("gems.json","a+")
file.each_line do
i += 1
end
puts gems.size
gems.shift(i)
puts gems.size
puts "#of lines that exists: " + i.to_s
gems.each do |g|
retryable(:tries => 5) do
info, versions, deps = nil, nil, nil
t1 = Thread.new{ info = Gems.info(g) }
t2 = Thread.new{ versions = Gems.version(g) }
t3 = Thread.new( deps = Gems.dependencies(g) }
[t1, t2, t3].each(&:join) # wait for them to finish
data = {
:name => g,
:info => info,
:versions => versions,
:dependencies => deps
}
file.write(data)
file.write("\n")
i += 1
puts i
end
end
file.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment