From 5277f849d9dc30c8beac490fe163f3cb7ac7dba1 Mon Sep 17 00:00:00 2001 From: EricFromCanada Date: Mon, 2 Mar 2020 16:29:49 -0500 Subject: [PATCH] API: supply additional data for requirements --- Library/Homebrew/formula.rb | 3 +++ Library/Homebrew/requirements/java_requirement.rb | 4 ++-- Library/Homebrew/requirements/macos_requirement.rb | 6 ++++++ Library/Homebrew/requirements/xcode_requirement.rb | 2 ++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index b465de0580..047b8967d8 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -1690,10 +1690,13 @@ class Formula end hsh["requirements"] = requirements.map do |req| + req.name.prepend("maximum_") if req.try(:comparator) == "<=" { "name" => req.name, "cask" => req.cask, "download" => req.download, + "version" => req.try(:version), + "contexts" => req.tags, } end diff --git a/Library/Homebrew/requirements/java_requirement.rb b/Library/Homebrew/requirements/java_requirement.rb index 8a0bf67e57..7b67cbc4ab 100644 --- a/Library/Homebrew/requirements/java_requirement.rb +++ b/Library/Homebrew/requirements/java_requirement.rb @@ -3,10 +3,10 @@ require "language/java" class JavaRequirement < Requirement - attr_reader :java_home - fatal true + attr_reader :java_home, :version + # A strict Java 8 requirement (1.8) should prompt the user to install # an OpenJDK 1.8 distribution. Versions newer than Java 8 are not # completely backwards compatible, and contain breaking changes such as diff --git a/Library/Homebrew/requirements/macos_requirement.rb b/Library/Homebrew/requirements/macos_requirement.rb index 64e7a8fee0..c8427dd767 100644 --- a/Library/Homebrew/requirements/macos_requirement.rb +++ b/Library/Homebrew/requirements/macos_requirement.rb @@ -5,6 +5,8 @@ require "requirement" class MacOSRequirement < Requirement fatal true + attr_reader :comparator, :version + def initialize(tags = [], comparator: ">=") if comparator == "==" && tags.first.respond_to?(:map) @version = tags.shift.map { |s| MacOS::Version.from_symbol(s) } @@ -54,6 +56,10 @@ class MacOSRequirement < Requirement end end + def inspect + "#<#{self.class.name}: #{tags.inspect} version#{@comparator}#{@version}>" + end + def display_s return "macOS is required" unless version_specified? diff --git a/Library/Homebrew/requirements/xcode_requirement.rb b/Library/Homebrew/requirements/xcode_requirement.rb index 3bdc95a908..974de5f67d 100644 --- a/Library/Homebrew/requirements/xcode_requirement.rb +++ b/Library/Homebrew/requirements/xcode_requirement.rb @@ -5,6 +5,8 @@ require "requirement" class XcodeRequirement < Requirement fatal true + attr_reader :version + satisfy(build_env: false) { xcode_installed_version } def initialize(tags = [])