opt
/
alt
/
ruby26
/
lib64
/
ruby
/
2.6.0
/
rubygems
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] commands
N/A
[DIR] core_ext
N/A
[DIR] ext
N/A
[DIR] package
N/A
[DIR] request
N/A
[DIR] request_set
N/A
[DIR] resolver
N/A
[DIR] security
N/A
[DIR] source
N/A
[DIR] ssl_certs
N/A
[DIR] util
N/A
available_set.rb
3.02 KB
Rename
Delete
basic_specification.rb
7.34 KB
Rename
Delete
bundler_version_finder.rb
2.78 KB
Rename
Delete
command.rb
14.06 KB
Rename
Delete
command_manager.rb
4.99 KB
Rename
Delete
compatibility.rb
1014 bytes
Rename
Delete
config_file.rb
12.61 KB
Rename
Delete
defaults.rb
4.91 KB
Rename
Delete
dependency.rb
8.42 KB
Rename
Delete
dependency_installer.rb
14.37 KB
Rename
Delete
dependency_list.rb
5.52 KB
Rename
Delete
deprecate.rb
1.73 KB
Rename
Delete
doctor.rb
3.06 KB
Rename
Delete
errors.rb
4.63 KB
Rename
Delete
exceptions.rb
6.62 KB
Rename
Delete
ext.rb
460 bytes
Rename
Delete
gem_runner.rb
2.18 KB
Rename
Delete
gemcutter_utilities.rb
5.20 KB
Rename
Delete
indexer.rb
11.27 KB
Rename
Delete
install_default_message.rb
336 bytes
Rename
Delete
install_message.rb
310 bytes
Rename
Delete
install_update_options.rb
6.26 KB
Rename
Delete
installer.rb
26.37 KB
Rename
Delete
installer_test_case.rb
4.12 KB
Rename
Delete
local_remote_options.rb
3.54 KB
Rename
Delete
mock_gem_ui.rb
1.38 KB
Rename
Delete
name_tuple.rb
2.41 KB
Rename
Delete
package.rb
17.52 KB
Rename
Delete
package_task.rb
3.80 KB
Rename
Delete
path_support.rb
1.87 KB
Rename
Delete
platform.rb
6.25 KB
Rename
Delete
psych_additions.rb
300 bytes
Rename
Delete
psych_tree.rb
794 bytes
Rename
Delete
rdoc.rb
523 bytes
Rename
Delete
remote_fetcher.rb
11.38 KB
Rename
Delete
request.rb
8.69 KB
Rename
Delete
request_set.rb
11.93 KB
Rename
Delete
requirement.rb
7.38 KB
Rename
Delete
resolver.rb
9.44 KB
Rename
Delete
safe_yaml.rb
1.55 KB
Rename
Delete
security.rb
21.24 KB
Rename
Delete
security_option.rb
1.06 KB
Rename
Delete
server.rb
22.72 KB
Rename
Delete
source.rb
5.20 KB
Rename
Delete
source_list.rb
2.53 KB
Rename
Delete
source_local.rb
274 bytes
Rename
Delete
source_specific_file.rb
272 bytes
Rename
Delete
spec_fetcher.rb
6.51 KB
Rename
Delete
specification.rb
72.70 KB
Rename
Delete
specification_policy.rb
10.69 KB
Rename
Delete
stub_specification.rb
4.81 KB
Rename
Delete
syck_hack.rb
2.12 KB
Rename
Delete
test_case.rb
43.33 KB
Rename
Delete
test_utilities.rb
8.39 KB
Rename
Delete
text.rb
1.86 KB
Rename
Delete
uninstaller.rb
8.91 KB
Rename
Delete
uri_formatter.rb
792 bytes
Rename
Delete
user_interaction.rb
13.29 KB
Rename
Delete
util.rb
2.70 KB
Rename
Delete
validator.rb
4.21 KB
Rename
Delete
version.rb
12.22 KB
Rename
Delete
version_option.rb
2.02 KB
Rename
Delete
# frozen_string_literal: true require 'tempfile' require 'rubygems' require 'rubygems/remote_fetcher' ## # A fake Gem::RemoteFetcher for use in tests or to avoid real live HTTP # requests when testing code that uses RubyGems. # # Example: # # @fetcher = Gem::FakeFetcher.new # @fetcher.data['http://gems.example.com/yaml'] = source_index.to_yaml # Gem::RemoteFetcher.fetcher = @fetcher # # # invoke RubyGems code # # paths = @fetcher.paths # assert_equal 'http://gems.example.com/yaml', paths.shift # assert paths.empty?, paths.join(', ') # # See RubyGems' tests for more examples of FakeFetcher. class Gem::FakeFetcher attr_reader :data attr_reader :last_request attr_accessor :paths def initialize @data = {} @paths = [] end def find_data(path) return File.read path.path if URI === path and 'file' == path.scheme if URI === path and "URI::#{path.scheme.upcase}" != path.class.name raise ArgumentError, "mismatch for scheme #{path.scheme} and class #{path.class}" end path = path.to_s @paths << path raise ArgumentError, 'need full URI' unless path =~ %r'^https?://' unless @data.key? path raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path) end @data[path] end def fetch_path(path, mtime = nil, head = false) data = find_data(path) if data.respond_to?(:call) data.call else if path.to_s =~ /gz$/ and not data.nil? and not data.empty? data = Gem::Util.gunzip data end data end end def cache_update_path(uri, path = nil, update = true) if data = fetch_path(uri) open(path, 'wb') { |io| io.write data } if path and update data else Gem.read_binary(path) if path end end # Thanks, FakeWeb! def open_uri_or_path(path) data = find_data(path) body, code, msg = data response = Net::HTTPResponse.send(:response_class, code.to_s).new("1.0", code.to_s, msg) response.instance_variable_set(:@body, body) response.instance_variable_set(:@read, true) response end def request(uri, request_class, last_modified = nil) data = find_data(uri) body, code, msg = (data.respond_to?(:call) ? data.call : data) @last_request = request_class.new uri.request_uri yield @last_request if block_given? response = Net::HTTPResponse.send(:response_class, code.to_s).new("1.0", code.to_s, msg) response.instance_variable_set(:@body, body) response.instance_variable_set(:@read, true) response end def pretty_print(q) # :nodoc: q.group 2, '[FakeFetcher', ']' do q.breakable q.text 'URIs:' q.breakable q.pp @data.keys end end def fetch_size(path) path = path.to_s @paths << path raise ArgumentError, 'need full URI' unless path =~ %r'^http://' unless @data.key? path raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path) end data = @data[path] data.respond_to?(:call) ? data.call : data.length end def download(spec, source_uri, install_dir = Gem.dir) name = File.basename spec.cache_file path = if Dir.pwd == install_dir # see fetch_command install_dir else File.join install_dir, "cache" end path = File.join path, name if source_uri =~ /^http/ File.open(path, "wb") do |f| f.write fetch_path(File.join(source_uri, "gems", name)) end else FileUtils.cp source_uri, path end path end def download_to_cache(dependency) found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dependency return if found.empty? spec, source = found.first download spec, source.uri.to_s end end # :stopdoc: class Gem::RemoteFetcher def self.fetcher=(fetcher) @fetcher = fetcher end end # :startdoc: ## # The SpecFetcherSetup allows easy setup of a remote source in RubyGems tests: # # spec_fetcher do |f| # f.gem 'a', 1 # f.spec 'a', 2 # f.gem 'b', 1' 'a' => '~> 1.0' # end # # The above declaration creates two gems, a-1 and b-1, with a dependency from # b to a. The declaration creates an additional spec a-2, but no gem for it # (so it cannot be installed). # # After the gems are created they are removed from Gem.dir. class Gem::TestCase::SpecFetcherSetup ## # Executes a SpecFetcher setup block. Yields an instance then creates the # gems and specifications defined in the instance. def self.declare(test, repository) setup = new test, repository yield setup setup.execute end def initialize(test, repository) # :nodoc: @test = test @repository = repository @gems = {} @downloaded = [] @installed = [] @operations = [] end ## # Returns a Hash of created Specification full names and the corresponding # Specification. def created_specs created = {} @gems.keys.each do |spec| created[spec.full_name] = spec end created end ## # Creates any defined gems or specifications def execute # :nodoc: execute_operations setup_fetcher created_specs end def execute_operations # :nodoc: @operations.each do |operation, *arguments| case operation when :gem then spec, gem = @test.util_gem(*arguments, &arguments.pop) write_spec spec @gems[spec] = gem @installed << spec when :download then spec, gem = @test.util_gem(*arguments, &arguments.pop) @gems[spec] = gem @downloaded << spec when :spec then spec = @test.util_spec(*arguments, &arguments.pop) write_spec spec @gems[spec] = nil @installed << spec end end end ## # Creates a gem with +name+, +version+ and +deps+. The created gem can be # downloaded and installed. # # The specification will be yielded before gem creation for customization, # but only the block or the dependencies may be set, not both. def gem(name, version, dependencies = nil, &block) @operations << [:gem, name, version, dependencies, block] end ## # Creates a gem with +name+, +version+ and +deps+. The created gem is # downloaded in to the cache directory but is not installed # # The specification will be yielded before gem creation for customization, # but only the block or the dependencies may be set, not both. def download(name, version, dependencies = nil, &block) @operations << [:download, name, version, dependencies, block] end ## # Creates a legacy platform spec with the name 'pl' and version 1 def legacy_platform spec 'pl', 1 do |s| s.platform = Gem::Platform.new 'i386-linux' s.instance_variable_set :@original_platform, 'i386-linux' end end def setup_fetcher # :nodoc: require 'zlib' require 'socket' require 'rubygems/remote_fetcher' unless @test.fetcher @test.fetcher = Gem::FakeFetcher.new Gem::RemoteFetcher.fetcher = @test.fetcher end Gem::Specification.reset begin gem_repo, @test.gem_repo = @test.gem_repo, @repository @test.uri = URI @repository @test.util_setup_spec_fetcher(*@downloaded) ensure @test.gem_repo = gem_repo @test.uri = URI gem_repo end @gems.each do |spec, gem| next unless gem @test.fetcher.data["#{@repository}gems/#{spec.file_name}"] = Gem.read_binary(gem) FileUtils.cp gem, spec.cache_file end end ## # Creates a spec with +name+, +version+ and +deps+. The created gem can be # downloaded and installed. # # The specification will be yielded before creation for customization, # but only the block or the dependencies may be set, not both. def spec(name, version, dependencies = nil, &block) @operations << [:spec, name, version, dependencies, block] end def write_spec(spec) # :nodoc: File.open spec.spec_file, 'w' do |io| io.write spec.to_ruby_for_cache end end end ## # A StringIO duck-typed class that uses Tempfile instead of String as the # backing store. # # This is available when rubygems/test_utilities is required. #-- # This class was added to flush out problems in Rubinius' IO implementation. class TempIO < Tempfile ## # Creates a new TempIO that will be initialized to contain +string+. def initialize(string = '') super "TempIO" binmode write string rewind end ## # The content of the TempIO as a String. def string flush Gem.read_binary path end end
Save