aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend
diff options
context:
space:
mode:
authorJack Nagel2012-07-09 23:24:27 -0500
committerJack Nagel2012-08-18 11:12:07 -0500
commit5fe7fdf1535eda627f74e0272b4bbf0618b9a498 (patch)
tree1738e492ec76938510be14172cb3d753e8883470 /Library/Homebrew/extend
parent956c1d653aee7b82d68c264fe5418723808ff662 (diff)
downloadbrew-5fe7fdf1535eda627f74e0272b4bbf0618b9a498.tar.bz2
Move version detection to Version class
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library/Homebrew/extend')
-rw-r--r--Library/Homebrew/extend/pathname.rb86
1 files changed, 3 insertions, 83 deletions
diff --git a/Library/Homebrew/extend/pathname.rb b/Library/Homebrew/extend/pathname.rb
index 553d7527e..dec937c54 100644
--- a/Library/Homebrew/extend/pathname.rb
+++ b/Library/Homebrew/extend/pathname.rb
@@ -161,90 +161,10 @@ class Pathname
out<<`/usr/bin/du -hd0 #{to_s} | cut -d"\t" -f1`.strip
end
- # attempts to retrieve the version component of this path, so generally
- # you'll call it on tarballs or extracted tarball directories, if you add
- # to this please provide amend the unittest
def version
- if directory?
- # directories don't have extnames
- stem=basename.to_s
- else
- # sourceforge /download
- if %r[((?:sourceforge.net|sf.net)/.*)/download$].match to_s
- stem=Pathname.new(dirname).stem
- else
- stem=self.stem
- end
- end
-
- # github tarballs, like v1.2.3
- %r[github.com/.*/(zip|tar)ball/v?((\d+\.)+\d+)$].match to_s
- return $2 if $2
-
- # eg. https://github.com/sam-github/libnet/tarball/libnet-1.1.4
- %r[github.com/.*/(zip|tar)ball/.*-((\d+\.)+\d+)$].match to_s
- return $2 if $2
-
- # dashed version
- # eg. github.com/isaacs/npm/tarball/v0.2.5-1
- %r[github.com/.*/(zip|tar)ball/v?((\d+\.)+\d+-(\d+))$].match to_s
- return $2 if $2
-
- # underscore version
- # eg. github.com/petdance/ack/tarball/1.93_02
- %r[github.com/.*/(zip|tar)ball/v?((\d+\.)+\d+_(\d+))$].match to_s
- return $2 if $2
-
- # eg. boost_1_39_0
- /((\d+_)+\d+)$/.match stem
- return $1.gsub('_', '.') if $1
-
- # eg. foobar-4.5.1-1
- # eg. ruby-1.9.1-p243
- /-((\d+\.)*\d\.\d+-(p|rc|RC)?\d+)$/.match stem
- return $1 if $1
-
- # eg. lame-398-1
- /-((\d)+-\d)/.match stem
- return $1 if $1
-
- # eg. foobar-4.5.1
- /-((\d+\.)*\d+)$/.match stem
- return $1 if $1
-
- # eg. foobar-4.5.1b
- /-((\d+\.)*\d+([abc]|rc|RC)\d*)$/.match stem
- return $1 if $1
-
- # eg foobar-4.5.0-beta1, or foobar-4.50-beta
- /-((\d+\.)*\d+-beta(\d+)?)$/.match stem
- return $1 if $1
-
- # eg. foobar4.5.1
- unless /^erlang-/.match basename
- /((\d+\.)*\d+)$/.match stem
- return $1 if $1
- end
-
- # eg foobar-4.5.0-bin
- /-((\d+\.)+\d+[abc]?)[-._](bin|dist|stable|src|sources?)$/.match stem
- return $1 if $1
-
- # Debian style eg dash_0.5.5.1.orig.tar.gz
- /_((\d+\.)+\d+[abc]?)[.]orig$/.match stem
- return $1 if $1
-
- # eg. otp_src_R13B (this is erlang's style)
- # eg. astyle_1.23_macosx.tar.gz
- stem.scan(/_([^_]+)/) do |match|
- return match.first if /\d/.match $1
- end
-
- # old erlang bottle style e.g. erlang-R14B03-bottle.tar.gz
- /-([^-]+)/.match stem
- return $1 if $1
-
- nil
+ require 'version'
+ version = Version.parse(self)
+ version.to_s unless version.nil?
end
def compression_type