Plugins
As of RubyGems 1.3.2, RubyGems will load plugins installed in gems or $LOAD_PATH. Plugins must be named ‘rubygems_plugin’ (.rb, .so, etc) and placed at the root of your gem’s #require_path. Plugins are discovered via Gem::find_files then loaded. Take care when implementing a plugin as your plugin file may be loaded multiple times if multiple versions of your gem are installed.
The following list of RubyGems plugins is probably not exhaustive. If you know of plugins that we missed, feel free to update this page.
- executable-hooks
- gem-browse
- gem-ctags
- gem-empty
- gem_info
- gem-init
- gem-compare
- gem-man
- gem-nice-install
- gem-orphan
- gem-patch
- gem-toolbox
- gem-wrappers
- graph
- maven-gem
- open-gem
- PushSafety
- rbenv-rehash
- rubygems-desc
- rubygems-openpgp
- rubygems-sandbox
- rubygems_snapshot
- rubygems-tasks
## executable-hooks https://github.com/mpapis/executable-hooks
Extends rubygems to support executables plugins.
In gem lib dir create rubygems_executable_plugin.rb:
Gem.execute do |original_file|
warn("Executing: #{original_file}")
end
https://github.com/tpope/gem-browse
Adds four commands:
gem editopens a gem in your editorgem openopens a gem by name in your editorgem cloneclones a gem from GitHubgem browseopens a gem’s homepage in your browser
https://github.com/rvm/gem-empty
Adds command gem empty to remove all gems from current GEM_HOME.
https://github.com/tpope/gem-ctags
Adds a gem ctags command to invoke the Exuberant Ctags indexer on already-installed gems, and then automatically invokes it on gems as they are installed.
https://github.com/oggy/gem_info
Adds a gem info command with fuzzy matching on name and version. Designed for scripting use.
https://github.com/mwhuss/gem-init
Adds gem init to create a barebones gem.
https://github.com/strzibny/gem-compare
Adds gem compare command that can help you to track upstream changes in the released
.gem files by comparing gemspec values, gemspec and Gemfile dependencies and files.
https://github.com/defunkt/gem-man
The gem man command lets you view a gem’s man page.
https://github.com/voxik/gem-nice-install
Tries to install system dependencies needed to install your gems with binary extensions
using standard gem install command. This currently works only for Fedora, but
hopefully will be extended.
https://github.com/sakuro/gem-orphan
Adds a gem orphan command that finds and lists gems on which no other gems are depending.
https://github.com/strzibny/gem-patch
Adds gem patch command, which enables you to apply patches directly on .gem files.
Supports both RubyGems 1.8 and RubyGems 2.0.
https://github.com/gudleik/gem-toolbox
Adds six commands:
gem open- opens a gem in your default editorgem cd- changes your working directory to the gem’s source rootgem readme- locates and displays a gem’s readme filegem history- locates and display’s a gem’s changeloggem doc- Browse a gem’s documentation in your default browsergem visit- Open a gem’s homepage in your default browser
https://github.com/rvm/gem-wrappers
Create gem wrappers for easy use of gems in cron and other system locations. By default wrappers are installed when a gem is installed.
Adds this commands:
gem wrappers regenerate- force rebuilding wrappers for all gem executablesgem wrappers- show current configuration
https://github.com/seattlerb/graph
Adds a gem graph command to output a gem dependency graph in graphviz’s dot format.
https://github.com/jruby/maven_gem
Adds gem maven to install any Maven-published Java library as though it were a gem.
https://github.com/adamsanderson/open_gem
Adds two commands:
gem openopens a gem in your default editorgem readopens a gem’s rdoc in your default browser
https://github.com/jdleesmiller/push_safety
Applies a whitelist to gem push to prevent accidentally pushing private gems to the public RubyGems repository.
https://github.com/scoz/rbenv-rehash
Automatically runs rbenv rehash after installing or uninstalling gems.
https://github.com/chad/rubygems-desc
Adds gem desc to describe a gem by name.
https://github.com/grant-olson/rubygems-openpgp
Adds commands and flags to allow OpenPGP signing of gems.
gem sign foo.gemto sign a gem.gem verify foo.gem --trustto verify a gem.gem build foo.gemspec --signto sign at build time.gem install foo --verify --trustto verify on install.
https://github.com/seattlerb/rubygems-sandbox
Manages command-line gem tools and dependencies with a gem sandbox command. This lets you install things like flay and rdoc outside of the global rubygems repository.
https://github.com/rogerleite/rubygems_snapshot
Adds gem snapshot to create exports of all your current gems into a single file that you can import later.
https://github.com/postmodern/rubygems-tasks
rubygems-tasks provides agnostic and unobtrusive Rake tasks for building, installing and releasing Ruby Gems.