4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/bundler/override/dependency_patch.rb', line 4
def self.included(base)
base.class_eval do
alias_method :dependencies_orig, :dependencies
alias_method :runtime_dependencies_orig, :runtime_dependencies if base.method_defined?(:runtime_dependencies)
def dependencies
override_dependencies(dependencies_orig) || []
end
def runtime_dependencies
override_dependencies(runtime_dependencies_orig) || []
end
def override_dependencies(deps)
return deps unless Bundler::Override.override? name
param = Bundler::Override.params(name)
drop = Array(param[:drop])
requirements = param[:requirements]
if requirements && !requirements.empty?
requirements.each do |name, requirement|
existing = deps.find { |d| d.name == name }
deps.delete_if { |d| d.name == name }
deps << Gem::Dependency.new(name, requirement, existing&.type || :runtime)
end
end
deps.delete_if { |d| drop.include? d.name }
deps
end
end
end
|