X7ROOT File Manager
Current Path:
/opt/alt/ruby34/share/rubygems/rubygems
opt
/
alt
/
ruby34
/
share
/
rubygems
/
rubygems
/
ðŸ“
..
📄
available_set.rb
(3 KB)
📄
basic_specification.rb
(8.13 KB)
📄
bundler_version_finder.rb
(1.96 KB)
📄
ci_detector.rb
(3.71 KB)
📄
command.rb
(15.97 KB)
📄
command_manager.rb
(5.64 KB)
ðŸ“
commands
📄
compatibility.rb
(1022 B)
📄
config_file.rb
(16.31 KB)
ðŸ“
core_ext
ðŸ“
defaults
📄
defaults.rb
(7.38 KB)
📄
dependency.rb
(8.45 KB)
📄
dependency_installer.rb
(9.91 KB)
📄
dependency_list.rb
(5.55 KB)
📄
deprecate.rb
(5.04 KB)
📄
doctor.rb
(3.13 KB)
📄
errors.rb
(4.53 KB)
📄
exceptions.rb
(7.13 KB)
ðŸ“
ext
📄
ext.rb
(498 B)
📄
gem_runner.rb
(2.14 KB)
ðŸ“
gemcutter_utilities
📄
gemcutter_utilities.rb
(11.25 KB)
📄
gemspec_helpers.rb
(394 B)
📄
install_default_message.rb
(349 B)
📄
install_message.rb
(323 B)
📄
install_update_options.rb
(6.56 KB)
📄
installer.rb
(27.74 KB)
📄
installer_uninstaller_utils.rb
(771 B)
📄
local_remote_options.rb
(3.61 KB)
📄
name_tuple.rb
(2.38 KB)
📄
openssl.rb
(125 B)
ðŸ“
package
📄
package.rb
(18.83 KB)
📄
package_task.rb
(3.79 KB)
📄
path_support.rb
(1.77 KB)
📄
platform.rb
(8.41 KB)
📄
psych_tree.rb
(855 B)
📄
query_utils.rb
(8.5 KB)
📄
rdoc.rb
(607 B)
📄
remote_fetcher.rb
(9.38 KB)
ðŸ“
request
📄
request.rb
(8.7 KB)
ðŸ“
request_set
📄
request_set.rb
(11.29 KB)
📄
requirement.rb
(7.08 KB)
ðŸ“
resolver
📄
resolver.rb
(9.43 KB)
📄
s3_uri_signer.rb
(5.96 KB)
ðŸ“
safe_marshal
📄
safe_marshal.rb
(1.92 KB)
📄
safe_yaml.rb
(1.04 KB)
ðŸ“
security
📄
security.rb
(21.69 KB)
📄
security_option.rb
(1.06 KB)
📄
shellwords.rb
(66 B)
ðŸ“
source
📄
source.rb
(5.78 KB)
📄
source_list.rb
(2.42 KB)
📄
spec_fetcher.rb
(7.68 KB)
📄
specification.rb
(69.02 KB)
📄
specification_policy.rb
(15.59 KB)
📄
specification_record.rb
(5.21 KB)
ðŸ“
ssl_certs
📄
stub_specification.rb
(4.96 KB)
📄
target_rbconfig.rb
(1.24 KB)
📄
text.rb
(2.06 KB)
📄
uninstaller.rb
(10.92 KB)
📄
unknown_command_spell_checker.rb
(411 B)
📄
update_suggestion.rb
(1.85 KB)
📄
uri.rb
(2.38 KB)
📄
uri_formatter.rb
(784 B)
📄
user_interaction.rb
(13.1 KB)
ðŸ“
util
📄
util.rb
(2.46 KB)
📄
validator.rb
(3.63 KB)
ðŸ“
vendor
📄
vendored_molinillo.rb
(81 B)
📄
vendored_net_http.rb
(233 B)
📄
vendored_optparse.rb
(79 B)
📄
vendored_securerandom.rb
(87 B)
📄
vendored_timeout.rb
(228 B)
📄
vendored_tsort.rb
(73 B)
📄
version.rb
(13.01 KB)
📄
version_option.rb
(2.17 KB)
📄
yaml_serializer.rb
(2.42 KB)
Editing: specification_record.rb
# frozen_string_literal: true module Gem class SpecificationRecord def self.dirs_from(paths) paths.map do |path| File.join(path, "specifications") end end def self.from_path(path) new(dirs_from([path])) end def initialize(dirs) @all = nil @stubs = nil @stubs_by_name = {} @spec_with_requirable_file = {} @active_stub_with_requirable_file = {} @dirs = dirs end # Sentinel object to represent "not found" stubs NOT_FOUND = Struct.new(:to_spec, :this).new private_constant :NOT_FOUND ## # Returns the list of all specifications in the record def all @all ||= stubs.map(&:to_spec) end ## # Returns a Gem::StubSpecification for every specification in the record def stubs @stubs ||= begin pattern = "*.gemspec" stubs = stubs_for_pattern(pattern, false) @stubs_by_name = stubs.select {|s| Gem::Platform.match_spec? s }.group_by(&:name) stubs end end ## # Returns a Gem::StubSpecification for every specification in the record # named +name+ only returns stubs that match Gem.platforms def stubs_for(name) if @stubs @stubs_by_name[name] || [] else @stubs_by_name[name] ||= stubs_for_pattern("#{name}-*.gemspec").select do |s| s.name == name end end end ## # Finds stub specifications matching a pattern in the record, optionally # filtering out specs not matching the current platform def stubs_for_pattern(pattern, match_platform = true) installed_stubs = installed_stubs(pattern) installed_stubs.select! {|s| Gem::Platform.match_spec? s } if match_platform stubs = installed_stubs + Gem::Specification.default_stubs(pattern) Gem::Specification._resort!(stubs) stubs end ## # Adds +spec+ to the the record, keeping the collection properly sorted. def add_spec(spec) return if all.include? spec all << spec stubs << spec (@stubs_by_name[spec.name] ||= []) << spec Gem::Specification._resort!(@stubs_by_name[spec.name]) Gem::Specification._resort!(stubs) end ## # Removes +spec+ from the record. def remove_spec(spec) all.delete spec.to_spec stubs.delete spec (@stubs_by_name[spec.name] || []).delete spec end ## # Sets the specs known by the record to +specs+. def all=(specs) @stubs_by_name = specs.group_by(&:name) @all = @stubs = specs end ## # Return full names of all specs in the record in sorted order. def all_names all.map(&:full_name) end include Enumerable ## # Enumerate every known spec. def each return enum_for(:each) unless block_given? all.each do |x| yield x end end ## # Returns every spec in the record that matches +name+ and optional +requirements+. def find_all_by_name(name, *requirements) req = Gem::Requirement.create(*requirements) env_req = Gem.env_requirement(name) matches = stubs_for(name).find_all do |spec| req.satisfied_by?(spec.version) && env_req.satisfied_by?(spec.version) end.map(&:to_spec) if name == "bundler" && !req.specific? require_relative "bundler_version_finder" Gem::BundlerVersionFinder.prioritize!(matches) end matches end ## # Return the best specification in the record that contains the file matching +path+. def find_by_path(path) path = path.dup.freeze spec = @spec_with_requirable_file[path] ||= stubs.find do |s| s.contains_requirable_file? path end || NOT_FOUND spec.to_spec end ## # Return the best specification in the record that contains the file # matching +path+ amongst the specs that are not activated. def find_inactive_by_path(path) stub = stubs.find do |s| next if s.activated? s.contains_requirable_file? path end stub&.to_spec end ## # Return the best specification in the record that contains the file # matching +path+, among those already activated. def find_active_stub_by_path(path) stub = @active_stub_with_requirable_file[path] ||= stubs.find do |s| s.activated? && s.contains_requirable_file?(path) end || NOT_FOUND stub.this end ## # Return the latest specs in the record, optionally including prerelease # specs if +prerelease+ is true. def latest_specs(prerelease) Gem::Specification._latest_specs stubs, prerelease end ## # Return the latest installed spec in the record for gem +name+. def latest_spec_for(name) latest_specs(true).find {|installed_spec| installed_spec.name == name } end private def installed_stubs(pattern) map_stubs(pattern) do |path, base_dir, gems_dir| Gem::StubSpecification.gemspec_stub(path, base_dir, gems_dir) end end def map_stubs(pattern) @dirs.flat_map do |dir| base_dir = File.dirname dir gems_dir = File.join base_dir, "gems" Gem::Specification.gemspec_stubs_in(dir, pattern) {|path| yield path, base_dir, gems_dir } end end end end
Upload File
Create Folder