class Gem::Package

Beispiel zur Verwendung einer Gem::Package

Erstellt eine .gem-Datei anhand einer Gem::Specification. Eine .gem-Datei ist ein Tarball, der data.tar.gz, metadata.gz, checksums.yaml.gz und möglicherweise Signaturen enthält.

require 'rubygems'
require 'rubygems/package'

spec = Gem::Specification.new do |s|
  s.summary = "Ruby based make-like utility."
  s.name = 'rake'
  s.version = PKG_VERSION
  s.requirements << 'none'
  s.files = PKG_FILES
  s.description = <<-EOF
Rake is a Make-like program implemented in Ruby. Tasks
and dependencies are specified in standard Ruby syntax.
  EOF
end

Gem::Package.build spec

Liest eine .gem-Datei.

require 'rubygems'
require 'rubygems/package'

the_gem = Gem::Package.new(path_to_dot_gem)
the_gem.contents # get the files in the gem
the_gem.extract_files destination_directory # extract the gem into a directory
the_gem.spec # get the spec out of the gem
the_gem.verify # check the gem is OK (contains valid gem specification, contains a not corrupt contents archive)

files sind die Dateien in der .gem-Tar-Datei, nicht die Ruby-Dateien im Gem extract_files und contents rufen automatisch verify auf