Skip to content

Instantly share code, notes, and snippets.

@alexbevi
Last active June 23, 2020 14:13
Show Gist options
  • Save alexbevi/56d129f62634fc5b2f699ffbae242180 to your computer and use it in GitHub Desktop.
Save alexbevi/56d129f62634fc5b2f699ffbae242180 to your computer and use it in GitHub Desktop.
require 'open-uri'
require 'nokogiri'
GITHUB_URL = "https://github.com/%s/network/dependents"
repos = [
{ name: "Ruby Driver", repo: "mongodb/mongo-ruby-driver" },
{ name: "Mongoid ODM", repo: "mongodb/mongoid" },
{ name: "C Driver", repo: "mongodb/mongo-c-driver" },
{ name: "C++ Driver", repo: "mongodb/mongo-cxx-driver" },
{ name: "C# Driver", repo: "mongodb/mongo-csharp-driver" },
{ name: "Go Driver", repo: "mongodb/mongo-go-driver" },
{ name: "Java Driver", repo: "mongodb/mongo-java-driver" },
{ name: "Node.js Driver", repo: "mongodb/node-mongodb-native" },
{ name: "Perl Driver", repo: "mongodb/mongo-perl-driver" },
{ name: "PHP Driver", repo: "mongodb/mongo-php-driver" },
{ name: "PyMODM", repo: "mongodb/pymodm" },
{ name: "Python Driver", repo: "mongodb/mongo-python-driver" },
{ name: "MongoEngine", repo: "MongoEngine/mongoengine" },
{ name: "Motor (Python Async) Driver", repo: "mongodb/motor" },
{ name: "Rust Driver", repo: "mongodb/mongo-rust-driver" },
{ name: "Scala Driver", repo: "mongodb/mongo-scala-driver" },
{ name: "Swift Driver", repo: "mongodb/mongo-swift-driver" }
]
result = [["Name", "Repos", "Packages"]]
result << ["----", "-----", "--------"]
repos.each do |r|
url = GITHUB_URL % r[:repo]
doc = Nokogiri::HTML(open(url))
repositories = doc.xpath("//svg[@class='octicon octicon-code-square']/parent::a").text.strip.split("\n").first.gsub(",","").to_i rescue -1
packages = doc.xpath("//svg[@class='octicon octicon-package']/parent::a").text.strip.split("\n").first.gsub(",","").to_i rescue -1
result << [ r[:name], repositories, packages ]
end
puts "MongoDB Drivers (Dependents)"
result.each { |r| puts r[0].ljust(35) + r[1].to_s.ljust(10) + r[2].to_s }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment