prepend instead of alias hacks for deprecations
This commit is contained in:
parent
02e4cae3d0
commit
8874d1fb13
@ -1,8 +1,7 @@
|
||||
require "dependency_collector"
|
||||
|
||||
class DependencyCollector
|
||||
alias _parse_string_spec parse_string_spec
|
||||
|
||||
module Compat
|
||||
# Define the languages that we can handle as external dependencies.
|
||||
LANGUAGE_MODULES = Set[
|
||||
:lua, :lua51, :perl, :python, :python3, :ruby
|
||||
@ -13,12 +12,10 @@ class DependencyCollector
|
||||
odeprecated "'depends_on :#{tag}'"
|
||||
LanguageModuleRequirement.new(tag, spec, tags[1])
|
||||
else
|
||||
_parse_string_spec(spec, tags)
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
alias _parse_symbol_spec parse_symbol_spec
|
||||
|
||||
def parse_symbol_spec(spec, tags)
|
||||
case spec
|
||||
when :clt
|
||||
@ -64,10 +61,12 @@ class DependencyCollector
|
||||
output_deprecation(spec)
|
||||
Dependency.new(spec, tags)
|
||||
else
|
||||
_parse_symbol_spec(spec, tags)
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def autotools_dep(spec, tags)
|
||||
tags << :build unless tags.include? :run
|
||||
Dependency.new(spec.to_s, tags)
|
||||
@ -78,3 +77,6 @@ class DependencyCollector
|
||||
"'depends_on \"#{new_dependency}\"'"
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
require "formula_support"
|
||||
|
||||
class KegOnlyReason
|
||||
alias _to_s to_s
|
||||
|
||||
module Compat
|
||||
def to_s
|
||||
case @reason
|
||||
when :provided_by_osx
|
||||
@ -13,6 +12,9 @@ class KegOnlyReason
|
||||
@reason = :shadowed_by_macos
|
||||
end
|
||||
|
||||
_to_s
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
||||
|
||||
@ -128,5 +128,15 @@ describe DependencyCollector do
|
||||
resource.download_strategy = Class.new
|
||||
expect { subject.add(resource) }.to raise_error(TypeError)
|
||||
end
|
||||
|
||||
it "is deprecated when called with a language module", :needs_compat do
|
||||
expect(subject).to receive(:odeprecated)
|
||||
subject.add("lpeg" => :lua)
|
||||
end
|
||||
|
||||
it "is deprecated when called with deprecated requirements", :needs_compat do
|
||||
expect(subject).to receive(:odeprecated)
|
||||
subject.add(:python)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -3,7 +3,7 @@ require "formula_support"
|
||||
describe KegOnlyReason do
|
||||
describe "#to_s" do
|
||||
it "returns the reason provided" do
|
||||
r = KegOnlyReason.new :provided_by_osx, "test"
|
||||
r = KegOnlyReason.new :provided_by_macos, "test"
|
||||
expect(r.to_s).to eq("test")
|
||||
end
|
||||
|
||||
@ -11,6 +11,12 @@ describe KegOnlyReason do
|
||||
r = KegOnlyReason.new :provided_by_macos, ""
|
||||
expect(r.to_s).to match(/^macOS already provides/)
|
||||
end
|
||||
|
||||
it "is deprecated when reason mentions 'osx'", :needs_compat do
|
||||
r = KegOnlyReason.new :provided_by_osx, "test"
|
||||
expect(r).to receive(:odeprecated)
|
||||
r.to_s
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user