info: include versions and other details in Requirements display

This commit is contained in:
Andrew Janke 2016-09-18 00:37:02 -04:00
parent 245838d86d
commit 5aaccba34c
8 changed files with 53 additions and 4 deletions

View File

@ -45,7 +45,7 @@ module Homebrew
end
else
ARGV.named.each_with_index do |f, i|
puts unless i == 0
puts unless i.zero?
begin
if f.include?("/") || File.exist?(f)
info_formula Formulary.factory(f)
@ -150,7 +150,8 @@ module Homebrew
ohai "Requirements"
%w[build required recommended optional].map do |type|
reqs = f.requirements.select(&:"#{type}?")
puts "#{type.capitalize}: #{decorate_requirements(reqs)}" unless reqs.to_a.empty?
next if reqs.to_a.empty?
puts "#{type.capitalize}: #{decorate_requirements(reqs)}"
end
end
@ -172,8 +173,9 @@ module Homebrew
def decorate_requirements(requirements)
req_status = requirements.collect do |req|
req.satisfied? ? pretty_installed(req.name) : pretty_uninstalled(req.name)
req_s = req.display_s
req.satisfied? ? pretty_installed(req_s) : pretty_uninstalled(req_s)
end
req_status * ", "
req_status.join(", ")
end
end

View File

@ -122,6 +122,10 @@ class Requirement
end
end
def display_s
name
end
private
def infer_name

View File

@ -42,4 +42,19 @@ class JavaRequirement < Requirement
def inspect
"#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
end
def display_s
if @version
if @version[-1] == "+"
op = ">="
version = @version[0, @version.length-1]
else
op = "="
version = @version
end
"#{name} #{op} #{version}"
else
name
end
end
end

View File

@ -51,4 +51,8 @@ class LanguageModuleRequirement < Requirement
when :ruby then "gem install"
end
end
def display_s
"#{@module_name} (#{@language} module)"
end
end

View File

@ -16,4 +16,8 @@ class MaximumMacOSRequirement < Requirement
versions newer than #{@version.pretty_name} due to an upstream incompatibility.
EOS
end
def display_s
"macOS <= #{@version}"
end
end

View File

@ -13,4 +13,8 @@ class MinimumMacOSRequirement < Requirement
def message
"OS X #{@version.pretty_name} or newer is required."
end
def display_s
"macOS >= #{@version}"
end
end

View File

@ -25,4 +25,12 @@ class PerlRequirement < Requirement
def inspect
"#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
end
def display_s
if @version
"#{name} >= #{@version}"
else
name
end
end
end

View File

@ -25,4 +25,12 @@ class RubyRequirement < Requirement
def inspect
"#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
end
def display_s
if @version
"#{name} >= #{@version}"
else
name
end
end
end