From e1e40a4b1aac7e06550b211f163d484c611102ae Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Thu, 8 Nov 2018 15:25:53 -0500 Subject: [PATCH] JavaRequirement: fix version parsing to handle Java 9 and higher --- .../Homebrew/requirements/java_requirement.rb | 2 +- .../requirements/java_requirement_spec.rb | 30 +++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 Library/Homebrew/test/requirements/java_requirement_spec.rb diff --git a/Library/Homebrew/requirements/java_requirement.rb b/Library/Homebrew/requirements/java_requirement.rb index 501129a249..945a9a1f7b 100644 --- a/Library/Homebrew/requirements/java_requirement.rb +++ b/Library/Homebrew/requirements/java_requirement.rb @@ -26,7 +26,7 @@ class JavaRequirement < Requirement end def initialize(tags = []) - @version = tags.shift if /(\d+\.)+\d/ =~ tags.first + @version = tags.shift if /^\d/ =~ tags.first super(tags) end diff --git a/Library/Homebrew/test/requirements/java_requirement_spec.rb b/Library/Homebrew/test/requirements/java_requirement_spec.rb new file mode 100644 index 0000000000..50e29b2091 --- /dev/null +++ b/Library/Homebrew/test/requirements/java_requirement_spec.rb @@ -0,0 +1,30 @@ +require "requirements/java_requirement" + +describe JavaRequirement do + describe "initialize" do + it "parses '1.8' tag correctly" do + req = described_class.new(["1.8"]) + expect(req.display_s).to eq("java = 1.8") + end + + it "parses '9' tag correctly" do + req = described_class.new(["9"]) + expect(req.display_s).to eq("java = 9") + end + + it "parses '9+' tag correctly" do + req = described_class.new(["9+"]) + expect(req.display_s).to eq("java >= 9") + end + + it "parses '11' tag correctly" do + req = described_class.new(["11"]) + expect(req.display_s).to eq("java = 11") + end + + it "parses bogus tag correctly" do + req = described_class.new(["bogus1.8"]) + expect(req.display_s).to eq("java") + end + end +end