Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more
# File rubygems/commands/lock_command.rb, line 60 def complain(message) if options[:strict] then raise Gem::Exception, message else say "# #{message}" end end
# File rubygems/commands/lock_command.rb, line 68 def execute say "require 'rubygems'" locked = {} pending = options[:args] until pending.empty? do full_name = pending.shift spec = Gem::SourceIndex.load_specification spec_path(full_name) if spec.nil? then 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 = Gem.source_index.search dep if candidates.empty? then complain "Unable to satisfy '#{dep}' from currently installed gems" else pending << candidates.last.full_name end end end end