diff options
-rw-r--r-- | lib/rubygems/commands/lock_command.rb | 21 |
1 files changed, 15 insertions, 6 deletions
@@ -58,15 +58,15 @@ lock it down to the exact version. end def complain(message) - if options.strict then - raise message else say "# #{message}" end end def execute - say 'require "rubygems"' locked = {} @@ -77,15 +77,20 @@ lock it down to the exact version. 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 @@ -94,7 +99,11 @@ lock it down to the exact version. end def spec_path(gem_full_name) - File.join Gem.path, "specifications", "#{gem_full_name }.gemspec" end end |