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