opt
/
alt
/
ruby26
/
lib64
/
ruby
/
2.6.0
/
rubygems
/
commands
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
build_command.rb
2.03 KB
Rename
Delete
cert_command.rb
9.02 KB
Rename
Delete
check_command.rb
2.23 KB
Rename
Delete
cleanup_command.rb
4.48 KB
Rename
Delete
contents_command.rb
4.07 KB
Rename
Delete
dependency_command.rb
5.14 KB
Rename
Delete
environment_command.rb
5.16 KB
Rename
Delete
fetch_command.rb
1.77 KB
Rename
Delete
generate_index_command.rb
2.55 KB
Rename
Delete
help_command.rb
10.14 KB
Rename
Delete
info_command.rb
713 bytes
Rename
Delete
install_command.rb
8.40 KB
Rename
Delete
list_command.rb
939 bytes
Rename
Delete
lock_command.rb
2.69 KB
Rename
Delete
mirror_command.rb
624 bytes
Rename
Delete
open_command.rb
1.96 KB
Rename
Delete
outdated_command.rb
852 bytes
Rename
Delete
owner_command.rb
2.82 KB
Rename
Delete
pristine_command.rb
5.39 KB
Rename
Delete
push_command.rb
3.53 KB
Rename
Delete
query_command.rb
9.28 KB
Rename
Delete
rdoc_command.rb
2.47 KB
Rename
Delete
search_command.rb
884 bytes
Rename
Delete
server_command.rb
2.38 KB
Rename
Delete
setup_command.rb
17.81 KB
Rename
Delete
signin_command.rb
890 bytes
Rename
Delete
signout_command.rb
896 bytes
Rename
Delete
sources_command.rb
5.18 KB
Rename
Delete
specification_command.rb
3.27 KB
Rename
Delete
stale_command.rb
962 bytes
Rename
Delete
uninstall_command.rb
5.41 KB
Rename
Delete
unpack_command.rb
5.07 KB
Rename
Delete
update_command.rb
6.99 KB
Rename
Delete
which_command.rb
2.15 KB
Rename
Delete
yank_command.rb
2.29 KB
Rename
Delete
# frozen_string_literal: true require 'rubygems/command' class Gem::Commands::LockCommand < Gem::Command def initialize super 'lock', 'Generate a lockdown list of gems', :strict => false add_option '-s', '--[no-]strict', 'fail if unable to satisfy a dependency' do |strict, options| options[:strict] = strict end end def arguments # :nodoc: "GEMNAME name of gem to lock\nVERSION version of gem to lock" end def defaults_str # :nodoc: "--no-strict" end def description # :nodoc: <<-EOF The lock command will generate a list of +gem+ statements that will lock down the versions for the gem given in the command line. It will specify exact versions in the requirements list to ensure that the gems loaded will always be consistent. A full recursive search of all effected gems will be generated. Example: gem lock rails-1.0.0 > lockdown.rb will produce in lockdown.rb: require "rubygems" gem 'rails', '= 1.0.0' gem 'rake', '= 0.7.0.1' gem 'activesupport', '= 1.2.5' gem 'activerecord', '= 1.13.2' gem 'actionpack', '= 1.11.2' gem 'actionmailer', '= 1.1.5' gem 'actionwebservice', '= 1.0.0' Just load lockdown.rb from your application to ensure that the current versions are loaded. Make sure that lockdown.rb is loaded *before* any other require statements. Notice that rails 1.0.0 only requires that rake 0.6.2 or better be used. Rake-0.7.0.1 is the most recent version installed that satisfies that, so we lock it down to the exact version. EOF end def usage # :nodoc: "#{program_name} GEMNAME-VERSION [GEMNAME-VERSION ...]" end def complain(message) if options[:strict] raise Gem::Exception, message else say "# #{message}" end end def execute say "require 'rubygems'" locked = {} pending = options[:args] until pending.empty? do full_name = pending.shift spec = Gem::Specification.load spec_path(full_name) if spec.nil? complain "Could not find gem #{full_name}, try using the full name" next end say "gem '#{spec.name}', '= #{spec.version}'" unless locked[spec.name] locked[spec.name] = true spec.runtime_dependencies.each do |dep| next if locked[dep.name] candidates = dep.matching_specs if candidates.empty? complain "Unable to satisfy '#{dep}' from currently installed gems" else pending << candidates.last.full_name end end end end def spec_path(gem_full_name) gemspecs = Gem.path.map { |path| File.join path, "specifications", "#{gem_full_name}.gemspec" } gemspecs.find { |path| File.exist? path } end end
Save