mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
34 lines
569 B
Ruby
34 lines
569 B
Ruby
|
##
|
||
|
# The primary source of gems is a file on disk, including all usages
|
||
|
# internal to rubygems.
|
||
|
#
|
||
|
# This is a private class, do not depend on it directly. Instead, pass a path
|
||
|
# object to `Gem::Package.new`.
|
||
|
|
||
|
class Gem::Package::FileSource < Gem::Package::Source # :nodoc: all
|
||
|
|
||
|
attr_reader :path
|
||
|
|
||
|
def initialize path
|
||
|
@path = path
|
||
|
end
|
||
|
|
||
|
def start
|
||
|
@start ||= File.read path, 20
|
||
|
end
|
||
|
|
||
|
def present?
|
||
|
File.exist? path
|
||
|
end
|
||
|
|
||
|
def with_write_io &block
|
||
|
open path, 'wb', &block
|
||
|
end
|
||
|
|
||
|
def with_read_io &block
|
||
|
open path, 'rb', &block
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|