Class: KegOnlyReason
- Defined in:
- extend/os/mac/formula_support.rb,
formula_support.rb
Overview
Used to annotate formulae that duplicate macOS-provided software or cause conflicts when linked in.
Instance Attribute Summary collapse
-
#reason ⇒ Object
readonly
Returns the value of attribute reason.
Instance Method Summary collapse
-
#applicable? ⇒ Boolean
-
#by_macos? ⇒ Boolean
-
#initialize(reason, explanation) ⇒ KegOnlyReason
constructor
A new instance of KegOnlyReason.
-
#provided_by_macos? ⇒ Boolean
-
#shadowed_by_macos? ⇒ Boolean
-
#to_hash ⇒ Object
-
#to_s ⇒ Object
-
#versioned_formula? ⇒ Boolean
Constructor Details
#initialize(reason, explanation) ⇒ KegOnlyReason
Returns a new instance of KegOnlyReason.
12 13 14 15 |
# File 'formula_support.rb', line 12 def initialize(reason, explanation) @reason = reason @explanation = explanation end |
Instance Attribute Details
#reason ⇒ Object (readonly)
Returns the value of attribute reason.
10 11 12 |
# File 'formula_support.rb', line 10 def reason @reason end |
Instance Method Details
#applicable? ⇒ Boolean
6 7 8 |
# File 'extend/os/mac/formula_support.rb', line 6 def applicable? true end |
#by_macos? ⇒ Boolean
29 30 31 |
# File 'formula_support.rb', line 29 def by_macos? provided_by_macos? || shadowed_by_macos? end |
#provided_by_macos? ⇒ Boolean
21 22 23 |
# File 'formula_support.rb', line 21 def provided_by_macos? @reason == :provided_by_macos end |
#shadowed_by_macos? ⇒ Boolean
25 26 27 |
# File 'formula_support.rb', line 25 def shadowed_by_macos? @reason == :shadowed_by_macos end |
#to_hash ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'formula_support.rb', line 62 def to_hash reason_string = if @reason.is_a?(Symbol) @reason.inspect else @reason.to_s end { "reason" => reason_string, "explanation" => @explanation, } end |
#to_s ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'formula_support.rb', line 40 def to_s return @explanation unless @explanation.empty? if versioned_formula? <<~EOS this is an alternate version of another formula EOS elsif provided_by_macos? <<~EOS macOS already provides this software and installing another version in parallel can cause all kinds of trouble EOS elsif shadowed_by_macos? <<~EOS macOS provides similar software and installing this software in parallel can cause all kinds of trouble EOS else @reason end.strip end |
#versioned_formula? ⇒ Boolean
17 18 19 |
# File 'formula_support.rb', line 17 def versioned_formula? @reason == :versioned_formula end |