diff options
| author | Jack Nagel | 2012-07-10 16:01:02 -0500 |
|---|---|---|
| committer | Jack Nagel | 2012-08-18 11:12:08 -0500 |
| commit | 4affbabfb7aef915f716531ad0a39eff04ff9933 (patch) | |
| tree | 9aeaede98bc672698de936cd0e180eccb0736324 | |
| parent | 7cfc6beaefb35910cabbb48d58dc81606c1885ec (diff) | |
| download | homebrew-4affbabfb7aef915f716531ad0a39eff04ff9933.tar.bz2 | |
Replace version strings with Version objects
| -rw-r--r-- | Library/Formula/bash.rb | 2 | ||||
| -rw-r--r-- | Library/Formula/lua.rb | 2 | ||||
| -rw-r--r-- | Library/Formula/shapelib.rb | 2 | ||||
| -rw-r--r-- | Library/Formula/sip.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/diy.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/versions.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/extend/pathname.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/formula.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/formula_support.rb | 13 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_bucket.rb | 12 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_formula.rb | 29 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_versions.rb | 19 | ||||
| -rw-r--r-- | Library/Homebrew/test/testing_env.rb | 18 |
13 files changed, 57 insertions, 53 deletions
diff --git a/Library/Formula/bash.rb b/Library/Formula/bash.rb index 60d61e53e..fd8f574e6 100644 --- a/Library/Formula/bash.rb +++ b/Library/Formula/bash.rb @@ -10,7 +10,7 @@ class Bash < Formula depends_on 'readline' def patches - patch_level = version.split('.').last.to_i + patch_level = version.to_s.split('.').last.to_i {'p0' => (1..patch_level).map { |i| "http://ftpmirror.gnu.org/bash/bash-4.2-patches/bash42-%03d" % i }} end diff --git a/Library/Formula/lua.rb b/Library/Formula/lua.rb index 35cd2ccd8..42832313c 100644 --- a/Library/Formula/lua.rb +++ b/Library/Formula/lua.rb @@ -53,7 +53,7 @@ class Lua < Formula # this ensures that this symlinking for lua starts at lib/lua/5.1 and not # below that, thus making luarocks work - (HOMEBREW_PREFIX/"lib/lua"/version.split('.')[0..1].join('.')).mkpath + (HOMEBREW_PREFIX/"lib/lua"/version.to_s.split('.')[0..1].join('.')).mkpath system "make", "macosx", "INSTALL_TOP=#{prefix}", "INSTALL_MAN=#{man1}" system "make", "install", "INSTALL_TOP=#{prefix}", "INSTALL_MAN=#{man1}" diff --git a/Library/Formula/shapelib.rb b/Library/Formula/shapelib.rb index d75a4b083..b5f9fd782 100644 --- a/Library/Formula/shapelib.rb +++ b/Library/Formula/shapelib.rb @@ -25,7 +25,7 @@ class Shapelib < Formula include.install 'shapefil.h' cd lib do - ln_s "libshp.#{version}.dylib", "libshp.#{version.split('.').first}.dylib" + ln_s "libshp.#{version}.dylib", "libshp.#{version.to_s.split('.').first}.dylib" ln_s "libshp.#{version}.dylib", "libshp.dylib" end end diff --git a/Library/Formula/sip.rb b/Library/Formula/sip.rb index 1e142c252..a29f04060 100644 --- a/Library/Formula/sip.rb +++ b/Library/Formula/sip.rb @@ -28,7 +28,7 @@ class Sip < Formula else sip_version = version end - inreplace 'build.py', /@SIP_VERSION@/, (sip_version.gsub '.', ',') + inreplace 'build.py', /@SIP_VERSION@/, (sip_version.to_s.gsub '.', ',') system "python", "build.py", "prepare" # Set --destdir such that the python modules will be in the HOMEBREWPREFIX/lib/pythonX.Y/site-packages diff --git a/Library/Homebrew/cmd/diy.rb b/Library/Homebrew/cmd/diy.rb index 2e71f8890..174626afc 100644 --- a/Library/Homebrew/cmd/diy.rb +++ b/Library/Homebrew/cmd/diy.rb @@ -21,7 +21,7 @@ module Homebrew extend self end end - prefix = HOMEBREW_CELLAR+name+version + prefix = HOMEBREW_CELLAR/name/version if File.file? 'CMakeLists.txt' puts "-DCMAKE_INSTALL_PREFIX=#{prefix}" diff --git a/Library/Homebrew/cmd/versions.rb b/Library/Homebrew/cmd/versions.rb index 267551106..f5fd72ea2 100644 --- a/Library/Homebrew/cmd/versions.rb +++ b/Library/Homebrew/cmd/versions.rb @@ -13,7 +13,7 @@ module Homebrew extend self else f.versions do |version, sha| print Tty.white.to_s - print "#{version.ljust(8)} " + print "#{version.to_s.ljust(8)} " print Tty.reset.to_s puts "git checkout #{sha} #{f.pretty_relative_path}" end diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb index dec937c54..8009e98ee 100644 --- a/Library/Homebrew/extend/pathname.rb +++ b/Library/Homebrew/extend/pathname.rb @@ -163,8 +163,7 @@ class Pathname def version require 'version' - version = Version.parse(self) - version.to_s unless version.nil? + Version.parse(self) end def compression_type diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index bf7c4f335..d6f9f8f7b 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -108,7 +108,7 @@ class Formula def prefix validate_variable :name validate_variable :version - HOMEBREW_CELLAR+@name+@version + HOMEBREW_CELLAR/@name/@version end def rack; prefix.parent end @@ -543,7 +543,7 @@ private def validate_variable name v = instance_variable_get("@#{name}") - raise "Invalid @#{name}" if v.to_s.empty? or v =~ /\s/ + raise "Invalid @#{name}" if v.to_s.empty? or v.to_s =~ /\s/ end def set_instance_variable(type) diff --git a/Library/Homebrew/formula_support.rb b/Library/Homebrew/formula_support.rb index 2119fbd11..1b968d849 100644 --- a/Library/Homebrew/formula_support.rb +++ b/Library/Homebrew/formula_support.rb @@ -1,5 +1,6 @@ require 'download_strategy' require 'checksums' +require 'version' class SoftwareSpec attr_reader :checksum, :mirrors, :specs @@ -58,12 +59,12 @@ class SoftwareSpec end def version val=nil - unless val.nil? - @version = val + if val.nil? + @version ||= Version.parse(@url) + else + @version = Version.new(val) @explicit_version = true end - @version ||= Pathname.new(@url).version - return @version end def mirror val @@ -73,7 +74,7 @@ class SoftwareSpec end class HeadSoftwareSpec < SoftwareSpec - def initialize url=nil, version='HEAD' + def initialize url=nil, version=Version.new(:HEAD) super end @@ -120,7 +121,7 @@ class Bottle < SoftwareSpec # as accessor for @version to preserve the interface def version val=nil if val.nil? - return @version ||= Pathname.new(@url).version + return @version ||= Version.parse(@url) else @revision = val end diff --git a/Library/Homebrew/test/test_bucket.rb b/Library/Homebrew/test/test_bucket.rb index 0758d2623..2963a5532 100644 --- a/Library/Homebrew/test/test_bucket.rb +++ b/Library/Homebrew/test/test_bucket.rb @@ -22,6 +22,8 @@ end # separate TestCase classes. class BeerTasting < Test::Unit::TestCase + include VersionAssertions + def test_supported_compressed_types assert_nothing_raised do MockFormula.new 'test-0.1.tar.gz' @@ -129,12 +131,6 @@ class BeerTasting < Test::Unit::TestCase assert_equal 10.7, f+0.1 end - def test_pathname_version - d=HOMEBREW_CELLAR+'foo-0.1.9' - d.mkpath - assert_equal '0.1.9', d.version - end - def test_pathname_plus_yeast nostdout do assert_nothing_raised do @@ -176,12 +172,12 @@ class BeerTasting < Test::Unit::TestCase assert_equal '.tar.gz', foo1.extname assert_equal 'foo-0.1', foo1.stem - assert_equal '0.1', foo1.version + assert_version_equal '0.1', foo1.version foo1 = HOMEBREW_CACHE/'foo-0.1.cpio.gz' assert_equal '.cpio.gz', foo1.extname assert_equal 'foo-0.1', foo1.stem - assert_equal '0.1', foo1.version + assert_version_equal '0.1', foo1.version end class MockMockFormula < Struct.new(:name); end diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb index 686d8b0f0..e60ddd051 100644 --- a/Library/Homebrew/test/test_formula.rb +++ b/Library/Homebrew/test/test_formula.rb @@ -10,6 +10,7 @@ class MostlyAbstractFormula < Formula end class FormulaTests < Test::Unit::TestCase + include VersionAssertions def test_prefix nostdout do @@ -65,7 +66,7 @@ class FormulaTests < Test::Unit::TestCase assert_equal 'http://example.com', f.homepage assert_equal 'file:///foo.com/testball-0.1.tbz', f.url assert_equal 1, f.mirrors.length - assert_equal '0.1', f.version + assert_version_equal '0.1', f.version assert_equal f.stable, f.active_spec assert_equal CurlDownloadStrategy, f.download_strategy assert_instance_of CurlDownloadStrategy, f.downloader @@ -124,10 +125,10 @@ class FormulaTests < Test::Unit::TestCase assert !f.stable.explicit_version? assert !f.bottle.explicit_version? assert !f.devel.explicit_version? - assert_equal '0.1', f.stable.version - assert_equal '0.1', f.bottle.version - assert_equal '0.2', f.devel.version - assert_equal 'HEAD', f.head.version + assert_version_equal '0.1', f.stable.version + assert_version_equal '0.1', f.bottle.version + assert_version_equal '0.2', f.devel.version + assert_version_equal 'HEAD', f.head.version assert_equal 0, f.bottle.revision end @@ -135,7 +136,7 @@ class FormulaTests < Test::Unit::TestCase ARGV.push '--devel' f = SpecTestBall.new assert_equal f.devel, f.active_spec - assert_equal '0.2', f.version + assert_version_equal '0.2', f.version assert_equal 'file:///foo.com/testball-0.2.tbz', f.url assert_equal CurlDownloadStrategy, f.download_strategy assert_instance_of CurlDownloadStrategy, f.downloader @@ -146,7 +147,7 @@ class FormulaTests < Test::Unit::TestCase ARGV.push '--HEAD' f = SpecTestBall.new assert_equal f.head, f.active_spec - assert_equal 'HEAD', f.version + assert_version_equal 'HEAD', f.version assert_equal 'https://github.com/mxcl/homebrew.git', f.url assert_equal GitDownloadStrategy, f.download_strategy assert_instance_of GitDownloadStrategy, f.downloader @@ -155,9 +156,9 @@ class FormulaTests < Test::Unit::TestCase def test_explicit_version_spec f = ExplicitVersionSpecTestBall.new - assert_equal '0.3', f.version - assert_equal '0.3', f.stable.version - assert_equal '0.4', f.devel.version + 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? end @@ -183,7 +184,7 @@ class FormulaTests < Test::Unit::TestCase assert !f.bottle.explicit_version? assert_equal 0, f.bottle.revision - assert_equal '0.1', f.bottle.version + assert_version_equal '0.1', f.bottle.version else assert_nil f.bottle end @@ -203,7 +204,7 @@ class FormulaTests < Test::Unit::TestCase assert_nil f.devel assert_equal f.head, f.active_spec - assert_equal 'HEAD', f.version + assert_version_equal 'HEAD', f.version assert_nil f.head.checksum assert_equal 'https://github.com/mxcl/homebrew.git', f.url assert_equal GitDownloadStrategy, f.download_strategy @@ -220,7 +221,7 @@ class FormulaTests < Test::Unit::TestCase assert_nil f.devel assert_equal f.head, f.active_spec - assert_equal 'HEAD', f.version + assert_version_equal 'HEAD', f.version assert_nil f.head.checksum assert_equal 'https://github.com/mxcl/homebrew.git', f.url assert_equal GitDownloadStrategy, f.download_strategy @@ -237,7 +238,7 @@ class FormulaTests < Test::Unit::TestCase assert_nil f.devel assert_equal f.head, f.active_spec - assert_equal 'HEAD', f.version + assert_version_equal 'HEAD', f.version assert_nil f.head.checksum assert_equal 'https://github.com/mxcl/homebrew.git', f.url assert_equal GitDownloadStrategy, f.download_strategy diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb index a432b1824..ab6f83991 100644 --- a/Library/Homebrew/test/test_versions.rb +++ b/Library/Homebrew/test/test_versions.rb @@ -3,20 +3,6 @@ require 'formula' require 'test/testball' require 'version' -module VersionAssertions - def assert_version_detected expected, url - assert_equal expected, Version.parse(url).to_s - end - - def assert_version_nil url - assert_nil Version.parse(url) - end - - def assert_version_comparison a, comparison, b - eval "assert Version.new(a) #{comparison} Version.new(b)" - end -end - class TestBadVersion < TestBall def initialize name=nil @stable = SoftwareSpec.new @@ -34,6 +20,9 @@ class VersionComparisonTests < Test::Unit::TestCase assert_version_comparison '1.2.3', '>', '1.2.2' assert_version_comparison '1.2.3-p34', '>', '1.2.3-p33' assert_version_comparison '1.2.4', '<', '1.2.4.1' + assert_version_comparison 'HEAD', '==', 'HEAD' + assert_version_comparison 'HEAD', '>', '1.2.3' + assert_version_comparison '1.2.3', '<', 'HEAD' end end @@ -43,7 +32,7 @@ class VersionParsingTests < Test::Unit::TestCase def test_pathname_version d = HOMEBREW_CELLAR/'foo-0.1.9' d.mkpath - assert_equal '0.1.9', d.version + assert_version_equal '0.1.9', d.version end def test_no_version diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb index b01fe2295..d0dbd9401 100644 --- a/Library/Homebrew/test/testing_env.rb +++ b/Library/Homebrew/test/testing_env.rb @@ -65,3 +65,21 @@ ARGV.extend(HomebrewArgvExtension) require 'extend/ENV' ENV.extend(HomebrewEnvExtension) + +module VersionAssertions + def assert_version_equal expected, actual + assert_equal Version.new(expected), actual + end + + def assert_version_detected expected, url + assert_equal expected, Version.parse(url).to_s + end + + def assert_version_nil url + assert_nil Version.parse(url) + end + + def assert_version_comparison a, comparison, b + eval "assert Version.new(a) #{comparison} Version.new(b)" + end +end |
