Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
gemverse gem - gem universe incl. rubygems API V1 wrapper lite; gem version cache, gem timeline reports, 'n' more
The gemverse includes a lightweight "to the metal" wrapper for the rubygems API V1 that returns data(sets) in the JSON format:
require 'gemverse'
## get all gems owned by the author with the handle / known as gettalong
# same as https://rubygems.org/api/v1/owners/gettalong/gems.json
data = Gems::API.gems_by( 'gettalong' )
puts " #{data.size} record(s)"
#=> 24 record(s)
## get all versions of the hexapdf gem
# same as https://rubygems.org/api/v1/versions/hexpdf.json"
data = Gems::API.versions( 'hexapdf' )
puts " #{data.size} record(s)"
#=> 71 record(s)
#...
Let's build a gem timeline report / what's news page.
Let's spotlight the work of Thomas Leitner, Austria also known as gettalong
who 24 published gems (as of 2023) in the last 10+ years.
Note: Yes, you can. Replace the gettalong
rubygems id / login with your own to build your very own timeline.
Step 1 - Online - Get gems & versions via "higher-level" rubygems api calls
cache = Gems::Cache.new( './cache' )
gems = Gems.find_by( owner: 'gettalong' )
puts " #{gems.size} record(s)"
#=> 24 record(s)
## bonus: save gems in a "flat" tabular datafile using the comma-separated values (.csv) format
gems.export( './profiles/gettalong/gems.csv' )
## fetch all gem versions and (auto-save)
## in a "flat" tabular datafile (e.g. <gem>/versions.csv)
## using the comma-spearated values (.csv) format
## in the cache directory
cache.update_versions( gems: gems )
Step 2 - Offline - Read versions from cache and build reports / timeline
cache = Gems::Cache.new( './gems' )
gems = read_csv( './profiles/gettalong/gems.csv' )
puts " #{gems.size} record(s)"
#=> 24 record(s)
versions = cache.read_versions( gems: gems )
puts " #{versions.size} record(s)"
#=> 238 record(s)
timeline = Gems::Timeline.new( versions,
title: "Thomas Leitner's Timeline" )
timeline.save( "./profiles/gettalong/README.md" )
That's it.
Tip: You can build "custom" timeline reports and filter / select the gems to include as you like. Let's (re)build the timeline for all ruby cocos (code commons) gems.
cache = Gems::Cache.new( './cache' )
gems = read_csv( './collections/cocos.csv' )
puts " #{gems.size} record(s)"
versions = cache.read_versions( gems: gems )
puts " #{versions.size} record(s)"
timeline = Gems::Timeline.new( versions,
title: 'Ruby Code Commons (COCOS) Timeline' )
timeline.save( "./collections/cocos/README.md" )
That's it.
See Thomas Leitner's Timeline, Jan Lelis's Timeline, Ruby Code Commons (COCOS) Timeline, and some more for some real-world timeline samples.
Or the Gerald Bauer's Gem Timeline (By Week) - 244 Gems, 1652 Updates page.
Or the gems leaderboard at the Vienna.rb / Wien.rb - Ruby Meetup / Stammtisch in Vienna, Austria page.
Yes, you can. Tell us about your gem timeline / leaderboard sample(s) ».
The gemverse
scripts are dedicated to the public domain.
Use it as you please with no restrictions whatsoever.
FAQs
Unknown package
We found that gemverse demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.