    # File lib/rubygems/commands/lock_command.rb, line 69
      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)

          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.name, dep.requirement_list

            if candidates.empty? then
              complain "Unable to satisfy '#{dep}' from currently installed gems."
            else
              pending << candidates.last.full_name
            end
          end
        end
      end