# frozen_string_literal: true
##
# Supports reading and writing gems from/to a generic IO object. This is
# useful for other applications built on top of rubygems, such as
# rubygems.org.
#
# This is a private class, do not depend on it directly. Instead, pass an IO
# object to `Gem::Package.new`.
class Gem::Package::IOSource < Gem::Package::Source # :nodoc: all
attr_reader :io
def initialize(io)
@io = io
end
def start
@start ||= begin
if io.pos > 0
raise Gem::Package::Error, "Cannot read start unless IO is at start"
end
value = io.read 20
io.rewind
value
end
end
def present?
true
end
def with_read_io
yield io
ensure
io.rewind
end
def with_write_io
yield io
ensure
io.rewind
end
def path
end
end
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| tar_reader | Folder | 0755 |
|
|
| digest_io.rb | File | 1.33 KB | 0644 |
|
| file_source.rb | File | 609 B | 0644 |
|
| io_source.rb | File | 813 B | 0644 |
|
| old.rb | File | 3.63 KB | 0644 |
|
| source.rb | File | 71 B | 0644 |
|
| tar_header.rb | File | 5.9 KB | 0644 |
|
| tar_reader.rb | File | 2.35 KB | 0644 |
|
| tar_writer.rb | File | 7.51 KB | 0644 |
|