The format class knows the guts of the RubyGem .gem file format and provides the capability to read gem files

Methods
F
N
Attributes
[RW] file_entries
[RW] gem_path
[RW] spec
Class Public methods
from_file_by_path(file_path)

Reads the named gem file and returns a Format object, representing the data from the gem file

file_path
String

Path to the gem file

# File lib/rubygems/old_format.rb, line 37
def self.from_file_by_path(file_path)
  unless File.exist?(file_path)
    raise Gem::Exception, "Cannot load gem file [#{file_path}]"
  end

  File.open(file_path, 'rb') do |file|
    from_io(file, file_path)
  end
end
from_io(io, gem_path="(io)")

Reads a gem from an io stream and returns a Format object, representing the data from the gem file

io
IO

Stream from which to read the gem

# File lib/rubygems/old_format.rb, line 53
def self.from_io(io, gem_path="(io)")
  format = self.new(gem_path)
  skip_ruby(io)
  format.spec = read_spec(io)
  format.file_entries = []
  read_files_from_gem(io) do |entry, file_data|
    format.file_entries << [entry, file_data]
  end
  format
end
new(gem_path)

Constructs an instance of a Format object, representing the gem's data structure.

gem
String

The file name of the gem

# File lib/rubygems/old_format.rb, line 23
def initialize(gem_path)
  require 'fileutils'
  require 'zlib'
  Gem.load_yaml

  @gem_path = gem_path
end