X11Dependency: use Version objects

This commit is contained in:
Jack Nagel 2014-07-01 21:26:41 -05:00
parent 3f6827374f
commit fc2d403a82
2 changed files with 10 additions and 15 deletions

View File

@ -11,12 +11,16 @@ class X11Dependency < Requirement
def initialize(name="x11", tags=[])
@name = name
@min_version = tags.shift if /(\d\.)+\d/ === tags.first
if /(\d\.)+\d/ === tags.first
@min_version = Version.new(tags.shift)
else
@min_version = Version.new("0.0.0")
end
super(tags)
end
satisfy :build_env => false do
MacOS::XQuartz.installed? && (@min_version.nil? || @min_version <= MacOS::XQuartz.version)
MacOS::XQuartz.installed? && min_version <= Version.new(MacOS::Quartz.version)
end
def message; <<-EOS.undent
@ -27,16 +31,7 @@ class X11Dependency < Requirement
end
def <=> other
return nil unless X11Dependency === other
if min_version.nil? && other.min_version.nil?
0
elsif other.min_version.nil?
1
elsif min_version.nil?
-1
else
return unless X11Dependency === other
min_version <=> other.min_version
end
end
end

View File

@ -69,7 +69,7 @@ class DependencyCollectorTests < Homebrew::TestCase
def test_x11_min_version
@d.add :x11 => '2.5.1'
assert_equal "2.5.1", find_requirement(X11Dependency).min_version
assert_equal "2.5.1", find_requirement(X11Dependency).min_version.to_s
end
def test_x11_tag
@ -80,7 +80,7 @@ class DependencyCollectorTests < Homebrew::TestCase
def test_x11_min_version_and_tag
@d.add :x11 => ['2.5.1', :optional]
dep = find_requirement(X11Dependency)
assert_equal '2.5.1', dep.min_version
assert_equal '2.5.1', dep.min_version.to_s
assert_predicate dep, :optional?
end