The format class knows the guts of the RubyGem .gem file format and provides the capability to read gem files
Reads the named gem file and returns a Format object, representing the data from the gem file
Path to the gem file
# File 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
Reads a gem from an io stream and returns a Format object, representing the data from the gem file
Stream from which to read the gem
# File 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
Constructs an instance of a Format object, representing the gem’s data structure.
The file name of the gem
# File rubygems/old_format.rb, line 23
def initialize(gem_path)
require 'fileutils'
require 'zlib'
Gem.load_yaml
@gem_path = gem_path
end
Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.
If you are posting code samples in your comments, please wrap them in "<pre><code class="ruby" > ... </code></pre>" markup in order to get syntax highlighting.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file a bug report so that it can be corrected for the next release. Thank you.