diff --git a/Library/Homebrew/test/test_versions.rb b/Library/Homebrew/test/test_versions.rb index c5671ce827..e1e4e2dcff 100644 --- a/Library/Homebrew/test/test_versions.rb +++ b/Library/Homebrew/test/test_versions.rb @@ -297,4 +297,9 @@ class VersionParsingTests < Test::Unit::TestCase assert_version_detected '2.4c', 'http://loop-aes.sourceforge.net/aespipe/aespipe-v2.4c.tar.bz2' end + + def test_perforce_style + assert_version_detected '2013.1.610569-x86_64', + '/usr/local/perforce-2013.1.610569-x86_64.mountain_lion.bottle.tar.gz' + end end diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index 07d042eb1d..7cc347a03e 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -237,6 +237,10 @@ class Version m = /[-_]([Rr]\d+[AaBb]\d*(?:-\d+)?)/.match(spec_s) return m.captures.first unless m.nil? + # e.g. perforce-2013.1.610569-x86_64 + m = /-([\d\.]+-x86(_64)?)/.match(stem) + return m.captures.first unless m.nil? + # e.g. boost_1_39_0 m = /((?:\d+_)+\d+)$/.match(stem) return m.captures.first.gsub('_', '.') unless m.nil?