From e57122780ec3c7dea535ea743930db97c9239037 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Tue, 10 Jul 2012 16:10:16 -0500 Subject: [PATCH] Add Version#detected_from_url? --- Library/Homebrew/cmd/audit.rb | 4 ++-- Library/Homebrew/formula_support.rb | 6 ------ Library/Homebrew/test/test_formula.rb | 12 ++++++------ Library/Homebrew/version.rb | 9 +++++++-- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/Library/Homebrew/cmd/audit.rb b/Library/Homebrew/cmd/audit.rb index bb3a538a47..0494f4c3f9 100644 --- a/Library/Homebrew/cmd/audit.rb +++ b/Library/Homebrew/cmd/audit.rb @@ -217,8 +217,8 @@ class FormulaAuditor if s.version.to_s.empty? problem "Invalid or missing #{spec} version" else - version_text = s.version if s.explicit_version? - version_url = Pathname.new(s.url).version + version_text = s.version unless s.version.detected_from_url? + version_url = Version.parse(s.url) if version_url == version_text problem "#{spec} version #{version_text} is redundant with version scanned from URL" end diff --git a/Library/Homebrew/formula_support.rb b/Library/Homebrew/formula_support.rb index 1b968d8499..023d225d9d 100644 --- a/Library/Homebrew/formula_support.rb +++ b/Library/Homebrew/formula_support.rb @@ -11,11 +11,6 @@ class SoftwareSpec @mirrors = [] end - # Was the version defined in the DSL, or detected from the URL? - def explicit_version? - @explicit_version || false - end - def download_strategy @download_strategy ||= DownloadStrategyDetector.new(@url, @using).detect end @@ -63,7 +58,6 @@ class SoftwareSpec @version ||= Version.parse(@url) else @version = Version.new(val) - @explicit_version = true end end diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb index e60ddd0514..4f9bb39309 100644 --- a/Library/Homebrew/test/test_formula.rb +++ b/Library/Homebrew/test/test_formula.rb @@ -122,9 +122,9 @@ class FormulaTests < Test::Unit::TestCase assert_equal 1, f.devel.mirrors.length assert f.head.mirrors.empty? - assert !f.stable.explicit_version? - assert !f.bottle.explicit_version? - assert !f.devel.explicit_version? + assert f.stable.version.detected_from_url? + assert f.bottle.version.detected_from_url? + assert f.devel.version.detected_from_url? assert_version_equal '0.1', f.stable.version assert_version_equal '0.1', f.bottle.version assert_version_equal '0.2', f.devel.version @@ -159,8 +159,8 @@ class FormulaTests < Test::Unit::TestCase assert_version_equal '0.3', f.version assert_version_equal '0.3', f.stable.version assert_version_equal '0.4', f.devel.version - assert f.stable.explicit_version? - assert f.devel.explicit_version? + assert !f.stable.version.detected_from_url? + assert !f.devel.version.detected_from_url? end def test_old_bottle_specs @@ -182,7 +182,7 @@ class FormulaTests < Test::Unit::TestCase assert_nil f.bottle.md5 assert_nil f.bottle.sha256 - assert !f.bottle.explicit_version? + assert f.bottle.version.detected_from_url? assert_equal 0, f.bottle.revision assert_version_equal '0.1', f.bottle.version else diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index cc8f220b75..878832f675 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -1,9 +1,14 @@ class Version include Comparable - def initialize val + def initialize val, detected=false return val if val.is_a? Version or val.nil? @version = val.to_s + @detected_from_url = detected + end + + def detected_from_url? + @detected_from_url end def head? @@ -39,7 +44,7 @@ class Version def self.parse spec version = _parse(spec) - Version.new(version) unless version.nil? + Version.new(version, true) unless version.nil? end private