PATH: //opt/alt/ruby26/lib64/ruby/2.6.0/bundler
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 build_metadata.rb
↓
X
📄 capistrano.rb
↓
X
📁 cli/
X
📄 cli.rb
↓
X
📁 compact_index_client/
X
📄 compact_index_client.rb
↓
X
📄 compatibility_guard.rb
↓
X
📄 constants.rb
↓
X
📄 current_ruby.rb
↓
X
📄 definition.rb
↓
X
📄 dep_proxy.rb
↓
X
📄 dependency.rb
↓
X
📄 deployment.rb
↓
X
📄 deprecate.rb
↓
X
📄 dsl.rb
↓
X
📄 endpoint_specification.rb
↓
X
📄 env.rb
↓
X
📄 environment_preserver.rb
↓
X
📄 errors.rb
↓
X
📄 feature_flag.rb
↓
X
📁 fetcher/
X
📄 fetcher.rb
↓
X
📄 friendly_errors.rb
↓
X
📄 gem_helper.rb
↓
X
📄 gem_helpers.rb
↓
X
📄 gem_remote_fetcher.rb
↓
X
📄 gem_tasks.rb
↓
X
📄 gem_version_promoter.rb
↓
X
📄 gemdeps.rb
↓
X
📄 graph.rb
↓
X
📄 index.rb
↓
X
📄 injector.rb
↓
X
📄 inline.rb
↓
X
📁 installer/
X
📄 installer.rb
↓
X
📄 lazy_specification.rb
↓
X
📄 lockfile_generator.rb
↓
X
📄 lockfile_parser.rb
↓
X
📄 match_platform.rb
↓
X
📄 mirror.rb
↓
X
📁 plugin/
X
📄 plugin.rb
↓
X
📄 process_lock.rb
↓
X
📄 psyched_yaml.rb
↓
X
📄 remote_specification.rb
↓
X
📁 resolver/
X
📄 resolver.rb
↓
X
📄 retry.rb
↓
X
📄 ruby_dsl.rb
↓
X
📄 ruby_version.rb
↓
X
📄 rubygems_ext.rb
↓
X
📄 rubygems_gem_installer.rb
↓
X
📄 rubygems_integration.rb
↓
X
📄 runtime.rb
↓
X
📁 settings/
X
📄 settings.rb
↓
X
📄 setup.rb
↓
X
📄 shared_helpers.rb
↓
X
📄 similarity_detector.rb
↓
X
📁 source/
X
📄 source.rb
↓
X
📄 source_list.rb
↓
X
📄 spec_set.rb
↓
X
📁 ssl_certs/
X
📄 stub_specification.rb
↓
X
📁 templates/
X
📁 ui/
X
📄 ui.rb
↓
X
📄 uri_credentials_filter.rb
↓
X
📁 vendor/
X
📄 vendored_fileutils.rb
↓
X
📄 vendored_molinillo.rb
↓
X
📄 vendored_persistent.rb
↓
X
📄 vendored_thor.rb
↓
X
📄 version.rb
↓
X
📄 version_ranges.rb
↓
X
📄 vlad.rb
↓
X
📄 worker.rb
↓
X
📄 yaml_serializer.rb
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: compact_index_client.rb
# frozen_string_literal: true require "pathname" require "set" module Bundler class CompactIndexClient DEBUG_MUTEX = Mutex.new def self.debug return unless ENV["DEBUG_COMPACT_INDEX"] DEBUG_MUTEX.synchronize { warn("[#{self}] #{yield}") } end class Error < StandardError; end require "bundler/compact_index_client/cache" require "bundler/compact_index_client/updater" attr_reader :directory # @return [Lambda] A lambda that takes an array of inputs and a block, and # maps the inputs with the block in parallel. # attr_accessor :in_parallel def initialize(directory, fetcher) @directory = Pathname.new(directory) @updater = Updater.new(fetcher) @cache = Cache.new(@directory) @endpoints = Set.new @info_checksums_by_name = {} @parsed_checksums = false @mutex = Mutex.new @in_parallel = lambda do |inputs, &blk| inputs.map(&blk) end end def names Bundler::CompactIndexClient.debug { "/names" } update(@cache.names_path, "names") @cache.names end def versions Bundler::CompactIndexClient.debug { "/versions" } update(@cache.versions_path, "versions") versions, @info_checksums_by_name = @cache.versions versions end def dependencies(names) Bundler::CompactIndexClient.debug { "dependencies(#{names})" } in_parallel.call(names) do |name| update_info(name) @cache.dependencies(name).map {|d| d.unshift(name) } end.flatten(1) end def spec(name, version, platform = nil) Bundler::CompactIndexClient.debug { "spec(name = #{name}, version = #{version}, platform = #{platform})" } update_info(name) @cache.specific_dependency(name, version, platform) end def update_and_parse_checksums! Bundler::CompactIndexClient.debug { "update_and_parse_checksums!" } return @info_checksums_by_name if @parsed_checksums update(@cache.versions_path, "versions") @info_checksums_by_name = @cache.checksums @parsed_checksums = true end private def update(local_path, remote_path) Bundler::CompactIndexClient.debug { "update(#{local_path}, #{remote_path})" } unless synchronize { @endpoints.add?(remote_path) } Bundler::CompactIndexClient.debug { "already fetched #{remote_path}" } return end @updater.update(local_path, url(remote_path)) end def update_info(name) Bundler::CompactIndexClient.debug { "update_info(#{name})" } path = @cache.info_path(name) checksum = @updater.checksum_for_file(path) unless existing = @info_checksums_by_name[name] Bundler::CompactIndexClient.debug { "skipping updating info for #{name} since it is missing from versions" } return end if checksum == existing Bundler::CompactIndexClient.debug { "skipping updating info for #{name} since the versions checksum matches the local checksum" } return end Bundler::CompactIndexClient.debug { "updating info for #{name} since the versions checksum #{existing} != the local checksum #{checksum}" } update(path, "info/#{name}") end def url(path) path end def synchronize @mutex.synchronize { yield } end end end
SIMPAN PERUBAHAN