Checks the permissions of the credentials file. If they are not 0600 an error message is displayed and RubyGems aborts.
Builds Marshal
quick index gemspecs.
Make directories for index generation
Combines specs in index
and source
then writes out a new copy to dest
. For a latest index, does not ensure the new file is minimal.
Creates windows .bat files for easy running of commands
Creates the scripts to run the applications in the gem.
Creates the symlinks to run the applications in the gem. Moves the symlink if the gem being installed has a newer version.
Performs various checks before installing the gem such as the install repository is writable and its directories exist, required Ruby and rubygems versions are met and that dependencies are installed.
Version and dependency checks are skipped if this install is forced.
The dependent check will be skipped if the install is ignoring dependencies.
Writes the .gem file to the cache directory
Adds an executable named “executable” to spec
with the given shebang
.
The executable is also written to the bin dir in @tmpdir and the installed gem directory for spec
.
Split the Gem search path (as reported by Gem.path
).
Given a name and requirement, downloads this gem into cache and returns the filename. Returns nil if the gem cannot be located.
Find
and fetch gem name tuples that match dependency
.
If matching_platform
is false, gems for all platforms are returned.
Return the best specification that contains the file matching path
.
Specification
attributes that must be non-nil
Make sure the YAML specification is properly formatted with dashes
Finds all gems that satisfy dep
TODO: move to minitest
TODO: move to minitest
Creates several default gems which all have a lib/code.rb file. The gems are not installed but are available in the cache dir.
gem a version 1, this is the best-described gem.
gem a version 2
gem a version 3.a
gem a_evil version 9, use this to ensure similarly-named gems don’t collide with a.
gem b version 2
gem c version 1.2
gem pl version 1, this gem has a legacy platform of i386-linux.
Additional prerelease
gems may also be created:
gem a version 2.a
TODO: nuke this and fix tests. this should speed up a lot
Set
the platform to arch