Build a single index for RubyGems 1.2 and newer
Builds indices for RubyGems 1.2 and newer. Handles full, latest, prerelease
List of gem file names to index.
Ensures the Gem::Specification
written out for this gem is loadable upon installation.
Prefix and suffix the program filename the same as ruby.
Builds the @spec gem and returns an installer for it. The built gem includes:
bin/executable lib/code.rb ext/a/mkrf_conf.rb
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.
Installs from the gem dependencies files in the :gemdeps
option in options
, yielding to the block
as in install
.
If :without_groups
is given in the options
, those groups in the gem dependencies file are not used. See Gem::Installer
for other options
.
Creates a Resolver
that queries only against the already installed gems for the needed
dependencies.
Adds a development dependency named gem
with requirements
to this gem.
Usage:
spec.add_development_dependency 'example', '~> 1.1', '>= 1.1.4'
Development dependencies aren’t installed by default and aren’t activated when a gem is required.
The version of Ruby required by this gem. The ruby version can be specified to the patch-level:
$ ruby -v -e 'p Gem.ruby_version' ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0] #<Gem::Version "2.0.0.247">
Because patch-level is taken into account, be very careful specifying using ‘<=`: `<= 2.2.2` will not match any patch-level of 2.2.2 after the `p0` release. It is much safer to specify `< 2.2.3` instead
Usage:
# This gem will work with 1.8.6 or greater... spec.required_ruby_version = '>= 1.8.6' # Only with ruby 2.0.x spec.required_ruby_version = '~> 2.0' # Only with ruby between 2.2.0 and 2.2.2 spec.required_ruby_version = ['>= 2.2.0', '< 2.2.3']
Finds all gems that satisfy dep
TODO: move to minitest
Builds a gem from spec
and places it in File.join @gemhome, 'cache'
. Automatically creates files based on spec.files
Removes all installed gems from +@gemhome+.
Installs the provided default specs including writing the spec file
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
Add spec
to +@fetcher+ serving the data in the file path
. repo
indicates which repo to make spec
appear to be in.