diff --git a/Library/Homebrew/test/version_spec.rb b/Library/Homebrew/test/version_spec.rb index d3d63a25ccd775da09ecd92dcdc1a365410b6461..41e05019c44932b272e668a71a3c5fcb0d2f1379 100644 --- a/Library/Homebrew/test/version_spec.rb +++ b/Library/Homebrew/test/version_spec.rb @@ -433,6 +433,11 @@ describe Version do .to be_detected_from("https://homebrew.bintray.com/bottles/imagemagick-6.7.5-7.lion.bottle.1.tar.gz") end + specify "date-based version style" do + expect(Version.create("2017-04-17")) + .to be_detected_from("https://example.com/dada-v2017-04-17.tar.gz") + end + specify "dash version style" do expect(Version.create("3.4")) .to be_detected_from("http://www.antlr.org/download/antlr-3.4-complete.jar") diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb index b9f512a50cfdbf041ed0f58a597c1614fa32931d..56ef37f72d8aa08496b11fa9a015939236ac4cd6 100644 --- a/Library/Homebrew/version.rb +++ b/Library/Homebrew/version.rb @@ -344,6 +344,11 @@ class Version m = /[-v]((?:\d+\.)*\d+)$/.match(spec_s) return m.captures.first unless m.nil? + # date-based versioning + # e.g. ltopers-v2017-04-14.tar.gz + m = /-v?(\d{4}-\d{2}-\d{2})/.match(stem) + return m.captures.first unless m.nil? + # e.g. lame-398-1 m = /-((?:\d)+-\d+)/.match(stem) return m.captures.first unless m.nil?