brew/Library/Homebrew/cask/dsl/conflicts_with.rb

37 lines
740 B
Ruby

module Cask
class DSL
class ConflictsWith
VALID_KEYS = Set.new [
:formula,
:cask,
:macos,
:arch,
:x11,
:java,
]
attr_reader *VALID_KEYS
def initialize(pairs = {})
@pairs = pairs
VALID_KEYS.each do |key|
instance_variable_set("@#{key}", Set.new)
end
pairs.each do |key, value|
raise "invalid conflicts_with key: '#{key.inspect}'" unless VALID_KEYS.include?(key)
instance_variable_set("@#{key}", instance_variable_get("@#{key}").merge([*value]))
end
end
def to_a
conflicts={}
@pairs.each { |k, v| conflicts[k]=v }
conflicts
end
end
end
end