Method: Gem::Specification#activate_dependencies

Defined in:
lib/rubygems/specification.rb

#activate_dependenciesObject

Activate all unambiguously resolved runtime dependencies of this spec. Add any ambiguous dependencies to the unresolved list to be resolved later, as needed.



1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
# File 'lib/rubygems/specification.rb', line 1404

def activate_dependencies
  unresolved = Gem::Specification.unresolved_deps

  runtime_dependencies.each do |spec_dep|
    if loaded = Gem.loaded_specs[spec_dep.name]
      next if spec_dep.matches_spec? loaded

      msg = "can't satisfy '#{spec_dep}', already activated '#{loaded.full_name}'"
      e = Gem::LoadError.new msg
      e.name = spec_dep.name

      raise e
    end

    specs = spec_dep.matching_specs(true).uniq(&:full_name)

    if specs.size == 0
      raise Gem::MissingSpecError.new(spec_dep.name, spec_dep.requirement, "at: #{spec_file}")
    elsif specs.size == 1
      specs.first.activate
    else
      name = spec_dep.name
      unresolved[name] = unresolved[name].merge spec_dep
    end
  end

  unresolved.delete self.name
end