Module: Bundler::Override::SpecSetPatch

Defined in:
lib/bundler/override/specset_patch.rb

Instance Method Summary collapse

Instance Method Details

#specs_for_dependency(dep, platform) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/bundler/override/specset_patch.rb', line 7

def specs_for_dependency(dep, platform)
  spec = super
  return spec if spec.empty?
  name = if dep.is_a?(String) then dep else dep.name end
  if Bundler::Override.override? name
    s = spec.first
    param = Bundler::Override.params(name)
    drop = param[:drop]
    s.dependencies.delete_if { |d| drop.include? d.name }
    requirements = param[:requirements]
    if requirements
      gems = Set.new(requirements.keys)
      s.dependencies.delete_if { |d| gems.include? d.name }
      requirements.each { |name, requirement| s.dependencies << Gem::Dependency.new(name, requirement) }
    end 
  end
  spec
end