module

Gem

ruby latest stable

RubyGems is the Ruby standard for publishing and managing third party libraries.

For user documentation, see:

For gem developer documentation see:

Further RubyGems documentation can be found at:

RubyGems 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 and then loaded.

For an example plugin, see the Graph gem which adds a `gem graph` command.

RubyGems Defaults, Packaging

RubyGems defaults are stored in lib/rubygems/defaults.rb. If you’re packaging RubyGems or implementing Ruby you can change RubyGems’ defaults.

For RubyGems packagers, provide lib/rubygems/defaults/operating_system.rb and override any defaults from lib/rubygems/defaults.rb.

For Ruby implementers, provide lib/rubygems/defaults/#{RUBY_ENGINE}.rb and override any defaults from lib/rubygems/defaults.rb.

If you need RubyGems to perform extra work on install or uninstall, your defaults override file can set pre/post install and uninstall hooks. See Gem::pre_install, Gem::pre_uninstall, Gem::post_install, Gem::post_uninstall.

Bugs

You can submit bugs to the RubyGems bug tracker on GitHub

Credits

RubyGems is currently maintained by Eric Hodel.

RubyGems was originally developed at RubyConf 2003 by:

  • Rich Kilmer – rich(at)infoether.com

  • Chad Fowler – chad(at)chadfowler.com

  • David Black – dblack(at)wobblini.net

  • Paul Brannan – paul(at)atdesk.com

  • Jim Weirich – jim(at)weirichhouse.org

Contributors:

  • Gavin Sinclair – gsinclair(at)soyabean.com.au

  • George Marrows – george.marrows(at)ntlworld.com

  • Dick Davies – rasputnik(at)hellooperator.net

  • Mauricio Fernandez – batsman.geo(at)yahoo.com

  • Simon Strandgaard – neoneye(at)adslhome.dk

  • Dave Glasser – glasser(at)mit.edu

  • Paul Duncan – pabs(at)pablotron.org

  • Ville Aine – vaine(at)cs.helsinki.fi

  • Eric Hodel – drbrain(at)segment7.net

  • Daniel Berger – djberg96(at)gmail.com

  • Phil Hagelberg – technomancy(at)gmail.com

  • Ryan Davis – ryand-ruby(at)zenspider.com

  • Evan Phoenix – evan(at)fallingsnow.net

  • Steve Klabnik – steve(at)steveklabnik.com

(If your name is missing, PLEASE let us know!)

License

See LICENSE.txt for permissions.

Thanks!

-The RubyGems Team


frozen_string_literal: true


frozen_string_literal: true


frozen_string_literal: true


frozen_string_literal: true

Constants

DEFAULT_HOST = "https://rubygems.org"

GEM_DEP_FILES = %w[\ngem.deps.rb\ngems.rb\nGemfile\nIsolate\n]

LOADED_SPECS_MUTEX = Mutex.new

MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/"

RDoc = ::RDoc::RubygemsHook

READ_BINARY_ERRORS = begin\nread_binary_errors = [Errno::EACCES, Errno::EROFS, Errno::ENOSYS]\nread_binary_errors << Errno::ENOTSUP if Errno.const_defined?(:ENOTSUP)\nread_binary_errors\nend.freeze

REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES = %w[\ngems\nspecifications/default\n]

REPOSITORY_SUBDIRECTORIES = %w[\nbuild_info\ncache\ndoc\nextensions\ngems\nspecifications\n]

RUBYGEMS_DIR = File.dirname File.expand_path(__FILE__)

USE_BUNDLER_FOR_GEMDEPS = false

VERSION = "2.7.6.2"

WIN_PATTERNS = [\n/bccwin/i,\n/cygwin/i,\n/djgpp/i,\n/mingw/i,\n/mswin/i,\n/wince/i,\n]

WRITE_BINARY_ERRORS = begin\nwrite_binary_errors = [Errno::ENOSYS]\nwrite_binary_errors << Errno::ENOTSUP if Errno.const_defined?(:ENOTSUP)\nwrite_binary_errors\nend.freeze

Attributes

[R]done_installing_hooks
[R]gemdeps
[R]loaded_specs
[R]post_build_hooks
[R]post_install_hooks
[R]post_reset_hooks
[R]post_uninstall_hooks
[R]pre_install_hooks
[R]pre_reset_hooks
[R]pre_uninstall_hooks

Files

  • lib/rubygems.rb
  • lib/rubygems/defaults.rb
  • lib/rubygems/errors.rb
  • lib/rubygems/psych_tree.rb
  • lib/rubygems/rdoc.rb
  • lib/rubygems/safe_yaml.rb
  • lib/rubygems/test_case.rb
  • lib/rubygems/util/list.rb