mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00

Merge RubyGems-2.7.5 from upstream. Please see its details: http://blog.rubygems.org/2018/02/06/2.7.5-released.html test_gem_util.rb: fix broken test * test/rubygems/test_gem_util.rb: no guarantee that tmpdir is always underneath the root directory at all. test_gem_commands_setup_command.rb: BUNDLER_VERS * test/rubygems/test_gem_commands_setup_command.rb: run bundled gem command, instead of installed one. no need to set bundled bundler unless Gem::USE_BUNDLER_FOR_GEMDEPS revert r62302 and force to define the version constant Merge RubyGems 2.7.6 from upstream. It fixed some security vulnerabilities. http://blog.rubygems.org/2018/02/15/2.7.6-released.html fix regexp literal warning. test/rubygems/test_gem_server.rb: eliminate duplicated character class warning. [Bug #14481] Remove unnecessary `[]`s git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
34 lines
609 B
Ruby
34 lines
609 B
Ruby
# frozen_string_literal: true
|
|
##
|
|
# 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
|
|
File.open path, 'wb', &block
|
|
end
|
|
|
|
def with_read_io &block
|
|
File.open path, 'rb', &block
|
|
end
|
|
|
|
end
|
|
|