Merge pull request #19806 from Homebrew/cask-dsl-initialize-instance-variables
Cask::DSL: define instance variables in initialize
This commit is contained in:
commit
076fdc30ce
@ -90,14 +90,14 @@ module Cask
|
||||
:deprecated?,
|
||||
:deprecation_date,
|
||||
:deprecation_reason,
|
||||
:deprecation_replacement_formula,
|
||||
:deprecation_replacement_cask,
|
||||
:deprecation_replacement_formula,
|
||||
:disable!,
|
||||
:disabled?,
|
||||
:disable_date,
|
||||
:disable_reason,
|
||||
:disable_replacement_formula,
|
||||
:disable_replacement_cask,
|
||||
:disable_replacement_formula,
|
||||
:discontinued?, # TODO: remove once discontinued? is removed (4.5.0)
|
||||
:livecheck,
|
||||
:livecheck_defined?,
|
||||
@ -112,18 +112,39 @@ module Cask
|
||||
|
||||
include OnSystem::MacOSAndLinux
|
||||
|
||||
attr_reader :cask, :token, :deprecation_date, :deprecation_reason, :deprecation_replacement_formula,
|
||||
:deprecation_replacement_cask, :disable_date, :disable_reason, :disable_replacement_formula,
|
||||
:disable_replacement_cask, :on_system_block_min_os
|
||||
attr_reader :cask, :token, :artifacts, :deprecation_date, :deprecation_reason,
|
||||
:deprecation_replacement_cask, :deprecation_replacement_formula,
|
||||
:disable_date, :disable_reason, :disable_replacement_cask,
|
||||
:disable_replacement_formula, :on_system_block_min_os
|
||||
|
||||
sig { params(cask: Cask).void }
|
||||
def initialize(cask)
|
||||
@cask = cask
|
||||
@artifacts = T.let(ArtifactSet.new, ArtifactSet)
|
||||
@called_in_on_system_block = T.let(false, T::Boolean)
|
||||
@cask = T.let(cask, Cask)
|
||||
@caveats = T.let(DSL::Caveats.new(cask), DSL::Caveats)
|
||||
@depends_on = T.let(DSL::DependsOn.new, DSL::DependsOn)
|
||||
@depends_on_set_in_block = T.let(false, T::Boolean)
|
||||
@deprecated = T.let(false, T::Boolean)
|
||||
@deprecation_date = T.let(nil, T.nilable(Date))
|
||||
@deprecation_reason = T.let(nil, T.nilable(T.any(String, Symbol)))
|
||||
@deprecation_replacement_cask = T.let(nil, T.nilable(String))
|
||||
@deprecation_replacement_formula = T.let(nil, T.nilable(String))
|
||||
@disable_date = T.let(nil, T.nilable(Date))
|
||||
@disable_reason = T.let(nil, T.nilable(T.any(String, Symbol)))
|
||||
@disable_replacement_cask = T.let(nil, T.nilable(String))
|
||||
@disable_replacement_formula = T.let(nil, T.nilable(String))
|
||||
@disabled = T.let(false, T::Boolean)
|
||||
@language_blocks = T.let({}, T::Hash[T::Array[String], Proc])
|
||||
@language_eval = T.let(nil, T.nilable(String))
|
||||
@livecheck = T.let(Livecheck.new(cask), Livecheck)
|
||||
@livecheck_defined = T.let(false, T::Boolean)
|
||||
@name = T.let([], T::Array[String])
|
||||
@on_system_blocks_exist = T.let(false, T::Boolean)
|
||||
@token = cask.token
|
||||
@on_system_block_min_os = T.let(nil, T.nilable(MacOSVersion))
|
||||
@staged_path = T.let(nil, T.nilable(Pathname))
|
||||
@token = T.let(cask.token, String)
|
||||
end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
@ -153,7 +174,6 @@ module Cask
|
||||
#
|
||||
# @api public
|
||||
def name(*args)
|
||||
@name ||= []
|
||||
return @name if args.empty?
|
||||
|
||||
@name.concat(args.flatten)
|
||||
@ -210,7 +230,6 @@ module Cask
|
||||
if args.empty?
|
||||
language_eval
|
||||
elsif block
|
||||
@language_blocks ||= {}
|
||||
@language_blocks[args] = block
|
||||
|
||||
return unless default
|
||||
@ -226,11 +245,13 @@ module Cask
|
||||
end
|
||||
|
||||
def language_eval
|
||||
return @language_eval if defined?(@language_eval)
|
||||
return @language_eval unless @language_eval.nil?
|
||||
|
||||
return @language_eval = nil if @language_blocks.blank?
|
||||
return @language_eval = nil if @language_blocks.empty?
|
||||
|
||||
raise CaskInvalidError.new(cask, "No default language specified.") if @language_blocks.default.nil?
|
||||
if (language_blocks_default = @language_blocks.default).nil?
|
||||
raise CaskInvalidError.new(cask, "No default language specified.")
|
||||
end
|
||||
|
||||
locales = cask.config.languages
|
||||
.filter_map do |language|
|
||||
@ -241,18 +262,15 @@ module Cask
|
||||
|
||||
locales.each do |locale|
|
||||
key = locale.detect(@language_blocks.keys)
|
||||
next if key.nil? || (language_block = @language_blocks[key]).nil?
|
||||
|
||||
next if key.nil?
|
||||
|
||||
return @language_eval = @language_blocks[key].call
|
||||
return @language_eval = language_block.call
|
||||
end
|
||||
|
||||
@language_eval = @language_blocks.default.call
|
||||
@language_eval = language_blocks_default.call
|
||||
end
|
||||
|
||||
def languages
|
||||
return [] if @language_blocks.nil?
|
||||
|
||||
@language_blocks.keys.flatten
|
||||
end
|
||||
|
||||
@ -425,7 +443,6 @@ module Cask
|
||||
#
|
||||
# @api public
|
||||
def depends_on(**kwargs)
|
||||
@depends_on ||= DSL::DependsOn.new
|
||||
@depends_on_set_in_block = true if @called_in_on_system_block
|
||||
return @depends_on if kwargs.empty?
|
||||
|
||||
@ -439,7 +456,7 @@ module Cask
|
||||
|
||||
# @api private
|
||||
def add_implicit_macos_dependency
|
||||
return if @depends_on.present? && @depends_on.macos.present?
|
||||
return if (cask_depends_on = @depends_on).present? && cask_depends_on.macos.present?
|
||||
|
||||
depends_on macos: ">= :#{MacOSVersion::SYMBOLS.key MacOSVersion::SYMBOLS.values.min}"
|
||||
end
|
||||
@ -452,10 +469,6 @@ module Cask
|
||||
set_unique_stanza(:conflicts_with, kwargs.empty?) { DSL::ConflictsWith.new(**kwargs) }
|
||||
end
|
||||
|
||||
def artifacts
|
||||
@artifacts ||= ArtifactSet.new
|
||||
end
|
||||
|
||||
sig { returns(Pathname) }
|
||||
def caskroom_path
|
||||
cask.caskroom_path
|
||||
@ -476,7 +489,6 @@ module Cask
|
||||
#
|
||||
# @api public
|
||||
def caveats(*strings, &block)
|
||||
@caveats ||= DSL::Caveats.new(cask)
|
||||
if block
|
||||
@caveats.eval_caveats(&block)
|
||||
elsif strings.any?
|
||||
@ -500,7 +512,6 @@ module Cask
|
||||
#
|
||||
# @api public
|
||||
def livecheck(&block)
|
||||
@livecheck ||= Livecheck.new(cask)
|
||||
return @livecheck unless block
|
||||
|
||||
if !@cask.allow_reassignment && @livecheck_defined
|
||||
|
@ -82,6 +82,12 @@ module Cask
|
||||
|
||||
@arch.concat(arches.map { |arch| VALID_ARCHES[arch] })
|
||||
end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def empty? = T.let(__getobj__, T::Hash[Symbol, T.untyped]).empty?
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def present? = !empty?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user