Class: Cask::DSL Private

Inherits:
Object show all
Includes:
OS::Mac::Cask::DSL, OnSystem::MacOSAndLinux, Utils::Output::Mixin, Utils::Path
Defined in:
cask/dsl.rb,
cask/dsl/base.rb,
cask/dsl/rename.rb,
cask/dsl/caveats.rb,
cask/dsl/version.rb,
cask/dsl/container.rb,
cask/dsl/preflight.rb,
cask/dsl/depends_on.rb,
cask/dsl/postflight.rb,
cask/dsl/conflicts_with.rb,
cask/dsl/uninstall_preflight.rb,
cask/dsl/uninstall_postflight.rb,
sorbet/rbi/dsl/cask/dsl.rbi

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

Class representing the domain-specific language used for casks.

Defined Under Namespace

Classes: Base, Caveats, ConflictsWith, Container, DependsOn, Postflight, Preflight, Rename, UninstallPostflight, UninstallPreflight, Version

Constant Summary collapse

ORDINARY_ARTIFACT_CLASSES =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

[
  Artifact::Installer,
  Artifact::App,
  Artifact::AppImage,
  Artifact::Artifact,
  Artifact::AudioUnitPlugin,
  Artifact::Binary,
  Artifact::CommandWrapper,
  Artifact::Colorpicker,
  Artifact::Dictionary,
  Artifact::Font,
  Artifact::GeneratedScript,
  Artifact::InputMethod,
  Artifact::InternetPlugin,
  Artifact::KeyboardLayout,
  Artifact::Manpage,
  Artifact::Pkg,
  Artifact::Prefpane,
  Artifact::Qlplugin,
  Artifact::Mdimporter,
  Artifact::ScreenSaver,
  Artifact::Service,
  Artifact::StageOnly,
  Artifact::Suite,
  Artifact::VstPlugin,
  Artifact::Vst3Plugin,
  Artifact::ZshCompletion,
  Artifact::FishCompletion,
  Artifact::BashCompletion,
  Artifact::GeneratedCompletion,
  Artifact::Uninstall,
  Artifact::Zap,
].freeze
ACTIVATABLE_ARTIFACT_CLASSES =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

T.let(
  (ORDINARY_ARTIFACT_CLASSES - [Artifact::StageOnly]).freeze,
  T::Array[T.class_of(Artifact::AbstractArtifact)],
)
ARTIFACT_BLOCK_CLASSES =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

[
  Artifact::PreflightBlock,
  Artifact::PostflightBlock,
].freeze
INSTALL_STEP_ARTIFACT_CLASSES =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

[
  Artifact::PreflightSteps,
  Artifact::PostflightSteps,
  Artifact::UninstallPreflightSteps,
  Artifact::UninstallPostflightSteps,
].freeze
DSL_METHODS =

This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.

T.let(Set.new([
  :arch,
  :artifacts,
  :auto_updates,
  :caveats,
  :conflicts_with,
  :container,
  :desc,
  :depends_on,
  :homepage,
  :homepage_browsed,
  :language,
  :name,
  :os,
  :rename,
  :sha256,
  :staged_path,
  :url,
  :version,
  :appdir,
  :deprecate!,
  :deprecated?,
  :deprecation_date,
  :deprecation_reason,
  :deprecation_replacement_cask,
  :deprecation_replacement_formula,
  :deprecate_args,
  :disable!,
  :disabled?,
  :disable_date,
  :disable_reason,
  :disable_replacement_cask,
  :disable_replacement_formula,
  :disable_args,
  :livecheck,
  :livecheck_defined?,
  :no_autobump!,
  :autobump?,
  :no_autobump_message,
  :on_system_blocks_exist?,
  :on_os_blocks_exist?,
  :on_system_block_min_os,
  :depends_on_set_in_block?,
  *ORDINARY_ARTIFACT_CLASSES.map(&:dsl_key),
  *ACTIVATABLE_ARTIFACT_CLASSES.map(&:dsl_key),
  *ARTIFACT_BLOCK_CLASSES.flat_map { |klass| [klass.dsl_key, klass.uninstall_dsl_key] },
  *INSTALL_STEP_ARTIFACT_CLASSES.map(&:dsl_key),
]).freeze, T::Set[Symbol])

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from OnSystem::MacOSAndLinux

included, #on_arch_conditional, #on_macos, #on_system_conditional

Methods included from Utils::Path

child_of?, ensure_child_of!, formula_any_version_installed?, #formula_any_version_installed?, formula_installed_prefixes, formula_opt_bin, #formula_opt_bin, formula_opt_bin_env, formula_opt_bin_path, formula_opt_include, #formula_opt_include, formula_opt_lib, #formula_opt_lib, formula_opt_libexec, #formula_opt_libexec, formula_opt_prefix, #formula_opt_prefix, loadable_package_path?

Methods included from Utils::Output::Mixin

#issue_reporting_message, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #opoo_without_github_actions_annotation, #pretty_deprecated, #pretty_disabled, #pretty_duration, #pretty_install_status, #pretty_installed, #pretty_uninstalled, #pretty_unmarked, #pretty_upgradable, #pretty_warning

Constructor Details

#initialize(cask) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:



190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
# File 'cask/dsl.rb', line 190

def initialize(cask)
  # NOTE: `:"@#{stanza}"` variables set by `set_unique_stanza` must be
  # initialized to `nil`.
  @arch = T.let(nil, T.nilable(String))
  @arch_set_in_block = T.let(false, T::Boolean)
  @artifacts = T.let(ArtifactSet.new, ArtifactSet)
  @auto_updates = T.let(nil, T.nilable(T::Boolean))
  @auto_updates_set_in_block = T.let(false, T::Boolean)
  @autobump = T.let(true, T::Boolean)
  @called_in_on_system_block = T.let(false, T::Boolean)
  @called_in_on_os_block = T.let(false, T::Boolean)
  @cask = cask
  @caveats = T.let(DSL::Caveats.new(cask), DSL::Caveats)
  @conflicts_with = T.let(nil, T.nilable(DSL::ConflictsWith))
  @container = T.let(nil, T.nilable(DSL::Container))
  @container_set_in_block = T.let(false, T::Boolean)
  @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))
  @deprecate_args = T.let(nil, T.nilable(T::Hash[Symbol, T.nilable(T.any(String, Symbol))]))
  @desc = T.let(nil, T.nilable(String))
  @desc_set_in_block = T.let(false, T::Boolean)
  @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))
  @disable_args = T.let(nil, T.nilable(T::Hash[Symbol, T.nilable(T.any(String, Symbol))]))
  @disabled = T.let(false, T::Boolean)
  @homepage = T.let(nil, T.nilable(String))
  @homepage_browsed = T.let(nil, T.nilable(Date))
  @homepage_set_in_block = 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])
  @no_autobump_defined = T.let(false, T::Boolean)
  @no_autobump_message = T.let(nil, T.nilable(T.any(String, Symbol)))
  @on_system_blocks_exist = T.let(false, T::Boolean)
  @on_os_blocks_exist = T.let(false, T::Boolean)
  @on_system_block_min_os = T.let(nil, T.nilable(MacOSVersion))
  @os = T.let(nil, T.nilable(String))
  @os_set_in_block = T.let(false, T::Boolean)
  @rename = T.let([], T::Array[DSL::Rename])
  @sha256 = T.let(nil, T.nilable(T.any(Checksum, Symbol)))
  @sha256_set_in_block = T.let(false, T::Boolean)
  @staged_path = T.let(nil, T.nilable(Pathname))
  @token = T.let(cask.token, String)
  @url = T.let(nil, T.nilable(URL))
  @url_set_in_block = T.let(false, T::Boolean)
  @version = T.let(nil, T.nilable(DSL::Version))
  @version_set_in_block = T.let(false, T::Boolean)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *_args) ⇒ T.noreturn

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

  • method (Symbol)
  • _args (T.anything)

Returns:

  • (T.noreturn)

Raises:

  • (NoMethodError)


875
876
877
# File 'cask/dsl.rb', line 875

def method_missing(method, *_args)
  raise NoMethodError, "undefined method '#{method}' for Cask '#{token}'"
end

Instance Attribute Details

#artifactsArtifactSet (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



151
152
153
# File 'cask/dsl.rb', line 151

def artifacts
  @artifacts
end

#caskCask (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



142
143
144
# File 'cask/dsl.rb', line 142

def cask
  @cask
end

#deprecate_argsHash{Symbol => String, Symbol, nil}? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



166
167
168
# File 'cask/dsl.rb', line 166

def deprecate_args
  @deprecate_args
end

#deprecation_dateDate? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Date, nil)


154
155
156
# File 'cask/dsl.rb', line 154

def deprecation_date
  @deprecation_date
end

#deprecation_reasonString, ... (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



157
158
159
# File 'cask/dsl.rb', line 157

def deprecation_reason
  @deprecation_reason
end

#deprecation_replacement_caskString? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



160
161
162
# File 'cask/dsl.rb', line 160

def deprecation_replacement_cask
  @deprecation_replacement_cask
end

#deprecation_replacement_formulaString? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



163
164
165
# File 'cask/dsl.rb', line 163

def deprecation_replacement_formula
  @deprecation_replacement_formula
end

#disable_argsHash{Symbol => String, Symbol, nil}? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



184
185
186
# File 'cask/dsl.rb', line 184

def disable_args
  @disable_args
end

#disable_dateDate? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Date, nil)


169
170
171
# File 'cask/dsl.rb', line 169

def disable_date
  @disable_date
end

#disable_reasonString, ... (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



172
173
174
# File 'cask/dsl.rb', line 172

def disable_reason
  @disable_reason
end

#disable_replacement_caskString? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



175
176
177
# File 'cask/dsl.rb', line 175

def disable_replacement_cask
  @disable_replacement_cask
end

#disable_replacement_formulaString? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



178
179
180
# File 'cask/dsl.rb', line 178

def disable_replacement_formula
  @disable_replacement_formula
end

#homepage_browsedDate? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Date, nil)


181
182
183
# File 'cask/dsl.rb', line 181

def homepage_browsed
  @homepage_browsed
end

#no_autobump_messageString, ... (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



148
149
150
# File 'cask/dsl.rb', line 148

def no_autobump_message
  @no_autobump_message
end

#on_system_block_min_osMacOSVersion? (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



187
188
189
# File 'cask/dsl.rb', line 187

def on_system_block_min_os
  @on_system_block_min_os
end

#tokenString (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



145
146
147
# File 'cask/dsl.rb', line 145

def token
  @token
end

Instance Method Details

#app(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


10
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 10

def app(*args, **kwargs); end

#app_image(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


13
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 13

def app_image(*args, **kwargs); end

#appdirPathname, String

The directory apps are installed into.

Returns:



893
894
895
896
897
# File 'cask/dsl.rb', line 893

def appdir
  return HOMEBREW_CASK_APPDIR_PLACEHOLDER if Cask.generating_hash?

  cask.config.appdir
end

#arch(arm: nil, intel: nil) ⇒ String?

Sets the cask's architecture strings.

Example

arch arm: "darwin-arm64", intel: "darwin"

Parameters:

  • arm (String, nil) (defaults to: nil)
  • intel (String, nil) (defaults to: nil)

Returns:



581
582
583
584
585
586
587
588
589
# File 'cask/dsl.rb', line 581

def arch(arm: nil, intel: nil)
  should_return = arm.nil? && intel.nil?

  set_unique_stanza(:arch, should_return) do
    @on_system_blocks_exist = true

    on_arch_conditional(arm:, intel:)
  end
end

#artifact(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


16
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 16

def artifact(*args, **kwargs); end

#audio_unit_plugin(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


19
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 19

def audio_unit_plugin(*args, **kwargs); end

#auto_updates(auto_updates = nil) ⇒ Boolean?

Asserts that the cask artifacts auto-update.

Parameters:

  • auto_updates (Boolean, nil) (defaults to: nil)

Returns:

  • (Boolean, nil)


711
712
713
# File 'cask/dsl.rb', line 711

def auto_updates(auto_updates = nil)
  set_unique_stanza(:auto_updates, auto_updates.nil?) { auto_updates }
end

#autobump?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Is the cask in autobump list?

Returns:

  • (Boolean)


747
748
749
# File 'cask/dsl.rb', line 747

def autobump?
  @autobump == true
end

#bash_completion(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


22
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 22

def bash_completion(*args, **kwargs); end

#binary(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


25
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 25

def binary(*args, **kwargs); end

#caskroom_pathPathname

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



667
668
669
# File 'cask/dsl.rb', line 667

def caskroom_path
  cask.caskroom_path
end

#caveats(*strings, &block) ⇒ String, DSL::Caveats

Provide the user with cask-specific information at install time.

Parameters:

Returns:



691
692
693
694
695
696
697
698
699
700
701
702
# File 'cask/dsl.rb', line 691

def caveats(*strings, &block)
  if block
    @caveats.eval_caveats(&block)
  elsif strings.any?
    strings.each do |string|
      @caveats.eval_caveats { string }
    end
  else
    return @caveats.to_s
  end
  @caveats
end

#caveats_objectDSL::Caveats

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



705
# File 'cask/dsl.rb', line 705

def caveats_object = @caveats

#colorpicker(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


28
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 28

def colorpicker(*args, **kwargs); end

#command_wrapper(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


31
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 31

def command_wrapper(*args, **kwargs); end

#conflicts_with(**kwargs) ⇒ DSL::ConflictsWith?

Note:

Multiple conflicts_with stanzas can be specified; they are merged.

Declare conflicts that keep a cask from installing or working correctly.

Parameters:

  • kwargs (T.anything)

Returns:



655
656
657
658
659
660
661
662
663
664
# File 'cask/dsl.rb', line 655

def conflicts_with(**kwargs)
  return @conflicts_with if kwargs.empty?

  new_conflicts = DSL::ConflictsWith.new(**kwargs)
  @conflicts_with = @conflicts_with&.merge!(new_conflicts) || new_conflicts
rescue CaskInvalidError
  raise
rescue => e
  raise CaskInvalidError.new(cask, "'conflicts_with' stanza failed with: #{e}")
end

#container(nested: nil, type: nil) ⇒ DSL::Container?

Sets the cask's container type or nested container path.

Examples

The container is a nested disk image:

container nested: "orca-#{version}.dmg"

The container should not be unarchived:

container type: :naked

Parameters:

  • nested (String, nil) (defaults to: nil)
  • type (Symbol, nil) (defaults to: nil)

Returns:



464
465
466
467
468
# File 'cask/dsl.rb', line 464

def container(nested: nil, type: nil)
  set_unique_stanza(:container, nested.nil? && type.nil?) do
    DSL::Container.new(nested:, type:)
  end
end

#default_language_groupArray<String>?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



417
418
419
420
421
422
# File 'cask/dsl.rb', line 417

def default_language_group
  default_language_block = @language_blocks.default
  return if default_language_block.nil?

  @language_blocks.key(default_language_block)
end

#depends_on(arg = nil, **kwargs) ⇒ DSL::DependsOn

Note:

Multiple dependencies can be specified.

Declare dependencies and requirements for a cask.

Parameters:

  • arg (Symbol, nil) (defaults to: nil)
  • kwargs (T.untyped)

Returns:



623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
# File 'cask/dsl.rb', line 623

def depends_on(arg = nil, **kwargs)
  @depends_on_set_in_block = true if @called_in_on_system_block
  if arg == :macos
    if kwargs.key?(:macos) || kwargs.key?(:maximum_macos)
      raise CaskInvalidError.new(cask, "`depends_on :macos` cannot be combined with another macOS `depends_on`")
    end

    kwargs[:macos] = :any
  elsif arg == :linux
    kwargs[:linux] = :any
  elsif arg
    raise CaskInvalidError.new(cask, "invalid 'depends_on' value: #{arg.inspect}")
  end
  return @depends_on if kwargs.empty?

  begin
    # Only OS blocks scope a dependency to one OS: `on_arm`/`on_intel`
    # blocks are evaluated on every OS, so a macOS dependency inside one
    # applies everywhere and marks the cask macOS-only.
    @depends_on.load(kwargs, set_in_block: @called_in_on_system_block, os_scoped: @called_in_on_os_block)
  rescue RuntimeError => e
    raise CaskInvalidError.new(cask, e)
  end
  @depends_on
end

#depends_on_set_in_block?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


249
# File 'cask/dsl.rb', line 249

def depends_on_set_in_block? = @depends_on_set_in_block

#deprecate!(date:, because:, replacement: nil, replacement_formula: nil, replacement_cask: nil) ⇒ void

Note:

A warning will be shown when trying to install this cask.

This method returns an undefined value.

Declare that a cask is no longer functional or supported.

Parameters:

  • date (String)
  • because (String, Symbol)
  • replacement (String, nil) (defaults to: nil)
  • replacement_formula (String, nil) (defaults to: nil)
  • replacement_cask (String, nil) (defaults to: nil)


765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
# File 'cask/dsl.rb', line 765

def deprecate!(date:, because:, replacement: nil, replacement_formula: nil, replacement_cask: nil)
  if [replacement, replacement_formula, replacement_cask].filter_map(&:presence).length > 1
    raise ArgumentError, "more than one of replacement, replacement_formula and/or replacement_cask specified!"
  end

  if replacement
    odeprecated(
      "deprecate!(:replacement)",
      "deprecate!(:replacement_formula) or deprecate!(:replacement_cask)",
    )
  end

  @deprecate_args = { date:, because:, replacement_formula:, replacement_cask: }

  @deprecation_date = Date.parse(date)
  return if @deprecation_date > Date.today

  @deprecation_reason = because
  @deprecation_replacement_formula = replacement_formula.presence || replacement
  @deprecation_replacement_cask = replacement_cask.presence || replacement
  @deprecated = true
end

#deprecated?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


252
# File 'cask/dsl.rb', line 252

def deprecated? = @deprecated

#desc(description = nil) ⇒ String?

Describes the cask.

Example

desc "Open-source code editor"

Parameters:

  • description (String, nil) (defaults to: nil)

Returns:



294
295
296
# File 'cask/dsl.rb', line 294

def desc(description = nil)
  set_unique_stanza(:desc, description.nil?) { description }
end

#dictionary(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


34
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 34

def dictionary(*args, **kwargs); end

#disable!(date:, because:, replacement: nil, replacement_formula: nil, replacement_cask: nil) ⇒ void

Note:

An error will be thrown when trying to install this cask.

This method returns an undefined value.

Declare that a cask is no longer functional or supported.

Parameters:

  • date (String)
  • because (String, Symbol)
  • replacement (String, nil) (defaults to: nil)
  • replacement_formula (String, nil) (defaults to: nil)
  • replacement_cask (String, nil) (defaults to: nil)


802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
# File 'cask/dsl.rb', line 802

def disable!(date:, because:, replacement: nil, replacement_formula: nil, replacement_cask: nil)
  if [replacement, replacement_formula, replacement_cask].filter_map(&:presence).length > 1
    raise ArgumentError, "more than one of replacement, replacement_formula and/or replacement_cask specified!"
  end

  # odeprecate: remove this remapping when the :unsigned reason is removed
  because = :fails_gatekeeper_check if because == :unsigned

  if replacement
    odeprecated(
      "disable!(:replacement)",
      "disable!(:replacement_formula) or disable!(:replacement_cask)",
    )
  end

  @disable_args = { date:, because:, replacement_formula:, replacement_cask: }

  @disable_date = Date.parse(date)

  if @disable_date > Date.today
    @deprecation_reason = because
    @deprecation_replacement_formula = replacement_formula.presence || replacement
    @deprecation_replacement_cask = replacement_cask.presence || replacement
    @deprecated = true
    return
  end

  @disable_reason = because
  @disable_replacement_formula = replacement_formula.presence || replacement
  @disable_replacement_cask = replacement_cask.presence || replacement
  @disabled = true
end

#disabled?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


255
# File 'cask/dsl.rb', line 255

def disabled? = @disabled

#fish_completion(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


37
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 37

def fish_completion(*args, **kwargs); end

#font(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


40
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 40

def font(*args, **kwargs); end

#generate_completions_from_executable(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


43
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 43

def generate_completions_from_executable(*args, **kwargs); end

#generated_script(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


46
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 46

def generated_script(*args, **kwargs); end

#homepage(homepage = nil, browsed: nil) ⇒ String?

Sets the cask's homepage.

Example

homepage "https://code.visualstudio.com/", browsed: "2026-07-26"

browsed is the date when a human last checked the homepage in a browser. Automated homepage availability audits are skipped for one year.

Parameters:

  • homepage (String, nil) (defaults to: nil)
  • browsed (String, nil) (defaults to: nil)

Returns:

Raises:



341
342
343
344
345
346
347
348
# File 'cask/dsl.rb', line 341

def homepage(homepage = nil, browsed: nil)
  raise CaskInvalidError.new(cask, "`browsed` requires a homepage URL") if homepage.nil? && browsed

  set_unique_stanza(:homepage, homepage.nil?) do
    @homepage_browsed = Date.parse(browsed) if browsed
    homepage
  end
end

#input_method(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


49
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 49

def input_method(*args, **kwargs); end

#installer(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


52
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 52

def installer(*args, **kwargs); end

#internet_plugin(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


55
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 55

def internet_plugin(*args, **kwargs); end

#keyboard_layout(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


58
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 58

def keyboard_layout(*args, **kwargs); end

#language(*args, default: false, &block) ⇒ String?

Specifies language-specific values for the cask.

Parameters:

  • args (String)
  • default (Boolean) (defaults to: false)
  • block (T.proc.returns(String), nil)

Returns:



360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
# File 'cask/dsl.rb', line 360

def language(*args, default: false, &block)
  if args.empty?
    language_eval
  elsif block
    @language_blocks[args] = block

    return unless default

    if !@cask.allow_reassignment && @language_blocks.default.present?
      raise CaskInvalidError.new(cask, "Only one default language may be defined.")
    end

    @language_blocks.default = block
    nil
  else
    raise CaskInvalidError.new(cask, "No block given to language stanza.")
  end
end

#language_evalString?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
# File 'cask/dsl.rb', line 380

def language_eval
  return @language_eval unless @language_eval.nil?

  return @language_eval = nil if @language_blocks.empty?

  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|
                  Locale.parse(language)
                rescue Locale::ParserError
                  nil
                end

  locales.each do |locale|
    key = T.cast(locale.detect(@language_blocks.keys), T.nilable(T::Array[String]))
    next if key.nil? || (language_block = @language_blocks[key]).nil?

    return @language_eval = language_block.call
  end

  @language_eval = language_blocks_default.call
end

#language_groupsArray<Array<String>>

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



412
413
414
# File 'cask/dsl.rb', line 412

def language_groups
  @language_blocks.keys
end

#languagesArray<String>

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



407
408
409
# File 'cask/dsl.rb', line 407

def languages
  @language_blocks.keys.flatten
end

#livecheck(&block) ⇒ Livecheck

Automatically fetch the latest version of a cask from changelogs.

Parameters:

Returns:



719
720
721
722
723
724
725
726
727
728
729
730
# File 'cask/dsl.rb', line 719

def livecheck(&block)
  return @livecheck unless block

  if !@cask.allow_reassignment && @livecheck_defined
    raise CaskInvalidError.new(cask, "'livecheck' stanza may only appear once.")
  end

  @livecheck_defined = true
  @livecheck.instance_eval(&block)
  set_no_autobump(because: :extract_plist) if @livecheck.strategy == :extract_plist && !no_autobump_defined?
  @livecheck
end

#livecheck_defined?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


258
# File 'cask/dsl.rb', line 258

def livecheck_defined? = @livecheck_defined

#manpage(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


61
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 61

def manpage(*args, **kwargs); end

#mdimporter(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


64
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 64

def mdimporter(*args, **kwargs); end

#name(*args) ⇒ Array<String>

Note:

Multiple names can be specified.

Specifies the cask's name.

Example

name "Visual Studio Code"

Parameters:

Returns:



278
279
280
281
282
# File 'cask/dsl.rb', line 278

def name(*args)
  return @name if args.empty?

  @name.concat(args.flatten)
end

#no_autobump!(because:) ⇒ void

This method returns an undefined value.

Excludes the cask from autobump list.

Parameters:



736
737
738
739
740
741
742
743
# File 'cask/dsl.rb', line 736

def no_autobump!(because:)
  tap = @cask.tap
  if tap && !tap.official?
    raise CaskInvalidError.new(cask, "'no_autobump!' can only be used in official Homebrew taps.")
  end

  set_no_autobump(because:)
end

#on_arm(&block) ⇒ T.anything

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

Returns:

  • (T.anything)


67
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 67

def on_arm(&block); end

#on_intel(&block) ⇒ T.anything

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

Returns:

  • (T.anything)


70
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 70

def on_intel(&block); end

#on_os_blocks_exist?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


264
# File 'cask/dsl.rb', line 264

def on_os_blocks_exist? = @on_os_blocks_exist

#on_system_blocks_exist?Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


261
# File 'cask/dsl.rb', line 261

def on_system_blocks_exist? = @on_system_blocks_exist

#os(macos: nil, linux: nil) ⇒ String?

Sets the cask's os strings.

Example

os macos: "darwin", linux: "tux"

Parameters:

  • macos (String, nil) (defaults to: nil)
  • linux (String, nil) (defaults to: nil)

Returns:



606
607
608
609
610
611
612
613
614
615
# File 'cask/dsl.rb', line 606

def os(macos: nil, linux: nil)
  should_return = macos.nil? && linux.nil?

  set_unique_stanza(:os, should_return) do
    @on_system_blocks_exist = true
    @on_os_blocks_exist = true

    on_system_conditional(macos:, linux:)
  end
end

#os_versionMacOSVersion?

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



885
886
887
# File 'cask/dsl.rb', line 885

def os_version
  nil
end

#pkg(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


73
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 73

def pkg(*args, **kwargs); end

#postflight(&block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



76
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 76

def postflight(&block); end

#postflight_steps(steps = nil, **kwargs, &block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



85
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 85

def postflight_steps(steps = nil, **kwargs, &block); end

#preflight(&block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



88
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 88

def preflight(&block); end

#preflight_steps(steps = nil, **kwargs, &block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



97
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 97

def preflight_steps(steps = nil, **kwargs, &block); end

#prefpane(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


100
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 100

def prefpane(*args, **kwargs); end

#qlplugin(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


103
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 103

def qlplugin(*args, **kwargs); end

#rename(from = T.unsafe(nil), to = T.unsafe(nil)) ⇒ Array<DSL::Rename>

Renames files after extraction.

This is useful when the downloaded file has unpredictable names that need to be normalized for proper artifact installation.

Example

rename "RØDECaster App*.pkg", "RØDECaster App.pkg"

Parameters:

  • from (String) (defaults to: T.unsafe(nil))
  • to (String) (defaults to: T.unsafe(nil))

Returns:



486
487
488
489
490
# File 'cask/dsl.rb', line 486

def rename(from = T.unsafe(nil), to = T.unsafe(nil))
  return @rename if from.nil?

  @rename << DSL::Rename.new(from, to)
end

#respond_to_missing?(_method_name, _include_private = false) ⇒ Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Parameters:

  • _method_name (String, Symbol)
  • _include_private (Boolean) (defaults to: false)

Returns:

  • (Boolean)


880
881
882
# File 'cask/dsl.rb', line 880

def respond_to_missing?(_method_name, _include_private = false)
  false
end

#screen_saver(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


106
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 106

def screen_saver(*args, **kwargs); end

#service(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


109
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 109

def service(*args, **kwargs); end

#set_unique_stanza(stanza, should_return, &_block) ⇒ T.type_parameter(:U)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Note:

Using WithoutRuntime to avoid Sorbet wrapping this method,

which would interfere with caller_locations in methods like url.

Parameters:

  • stanza (Symbol)
  • should_return (Boolean)
  • _block (T.proc.returns(T.all(BasicObject, T.type_parameter(:U))))

Returns:

  • (T.type_parameter(:U))


307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
# File 'cask/dsl.rb', line 307

def set_unique_stanza(stanza, should_return, &_block)
  return instance_variable_get(:"@#{stanza}") if should_return

  unless @cask.allow_reassignment
    if !instance_variable_get(:"@#{stanza}").nil? && !@called_in_on_system_block
      raise CaskInvalidError.new(cask, "'#{stanza}' stanza may only appear once.")
    end

    if instance_variable_get(:"@#{stanza}_set_in_block") && @called_in_on_system_block
      raise CaskInvalidError.new(cask, "'#{stanza}' stanza may only be overridden once.")
    end
  end

  instance_variable_set(:"@#{stanza}_set_in_block", true) if @called_in_on_system_block
  instance_variable_set(:"@#{stanza}", yield)
rescue CaskInvalidError
  raise
rescue => e
  raise CaskInvalidError.new(cask, "'#{stanza}' stanza failed with: #{e}")
end

#sha256(arg = nil, arm: nil, intel: nil, x86_64: nil, x86_64_linux: nil, arm64_linux: nil) ⇒ Symbol, ...

Sets the cask's download checksum.

Example

For universal or single-architecture downloads:

sha256 "7bdb497080ffafdfd8cc94d8c62b004af1be9599e865e5555e456e2681e150ca"

For architecture- or OS-dependent downloads:

sha256 arm:          "7bdb497080ffafdfd8cc94d8c62b004af1be9599e865e5555e456e2681e150ca",
       intel:        "b3c1c2442480a0219b9e05cf91d03385858c20f04b764ec08a3fa83d1b27e7b2",
       arm64_linux:  "bd766af7e692afceb727a6f88e24e6e68d9882aeb3e8348412f6c03d96537c75",
       x86_64_linux: "1a2aee7f1ddc999993d4d7d42a150c5e602bc17281678050b8ed79a0500cc90f"

Parameters:

  • arg (String, Symbol, nil) (defaults to: nil)
  • arm (String, nil) (defaults to: nil)
  • intel (String, nil) (defaults to: nil)
  • x86_64 (String, nil) (defaults to: nil)
  • x86_64_linux (String, nil) (defaults to: nil)
  • arm64_linux (String, nil) (defaults to: nil)

Returns:



545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
# File 'cask/dsl.rb', line 545

def sha256(arg = nil, arm: nil, intel: nil, x86_64: nil, x86_64_linux: nil, arm64_linux: nil)
  should_return = arg.nil? && arm.nil? && (intel.nil? || x86_64.nil?) && x86_64_linux.nil? && arm64_linux.nil?

  x86_64 ||= intel if intel.present? && x86_64.nil?
  set_unique_stanza(:sha256, should_return) do
    if arm.present? || x86_64.present? || x86_64_linux.present? || arm64_linux.present?
      @on_system_blocks_exist = true
    end

    val = arg || on_system_conditional(
      macos: on_arch_conditional(arm:, intel: x86_64),
      linux: on_arch_conditional(arm: arm64_linux, intel: x86_64_linux),
    )
    case val
    when :no_check
      :no_check
    when String
      Checksum.new(val)
    when nil
      nil
    else
      raise CaskInvalidError.new(cask, "invalid 'sha256' value: #{val.inspect}")
    end
  end
end

#stage_only(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


112
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 112

def stage_only(*args, **kwargs); end

#staged_pathPathname

The staged location for this cask, including version number.

Returns:



675
676
677
678
679
680
# File 'cask/dsl.rb', line 675

def staged_path
  return @staged_path if @staged_path

  cask_version = version || :unknown
  @staged_path = caskroom_path.join(cask_version.to_s)
end

#suite(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


115
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 115

def suite(*args, **kwargs); end

#uninstall(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


118
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 118

def uninstall(*args, **kwargs); end

#uninstall_postflight(&block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



125
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 125

def uninstall_postflight(&block); end

#uninstall_postflight_steps(steps = nil, **kwargs, &block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



134
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 134

def uninstall_postflight_steps(steps = nil, **kwargs, &block); end

#uninstall_preflight(&block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



141
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 141

def uninstall_preflight(&block); end

#uninstall_preflight_steps(steps = nil, **kwargs, &block) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



150
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 150

def uninstall_preflight_steps(steps = nil, **kwargs, &block); end

#url(uri = nil, **options) ⇒ URL?

Sets the cask's download URL.

Example

url "https://update.code.visualstudio.com/#{version}/#{arch}/stable"

Parameters:

  • uri (URI::Generic, String, nil) (defaults to: nil)
  • options (T.untyped)

Returns:



434
435
436
437
438
439
440
441
442
443
444
# File 'cask/dsl.rb', line 434

def url(uri = nil, **options)
  caller_location = caller_locations.fetch(0)
  return @url unless uri

  # Keep accepting `verified` as a no-op for compatibility with existing casks.
  # odeprecated "the `verified` parameter in the `url` stanza" if options[:verified]

  set_unique_stanza(:url, false) do
    URL.new(uri, **options, caller_location:)
  end
end

#version(arg = nil) ⇒ DSL::Version?

Sets the cask's version.

Example

version "1.88.1"

Parameters:

Returns:

See Also:



503
504
505
506
507
508
509
510
511
512
513
# File 'cask/dsl.rb', line 503

def version(arg = nil)
  set_unique_stanza(:version, arg.nil?) do
    if !arg.is_a?(String) && arg != :latest
      raise CaskInvalidError.new(cask, "invalid 'version' value: #{arg.inspect}")
    end

    set_no_autobump(because: :latest_version) if arg == :latest && !no_autobump_defined?

    DSL::Version.new(arg)
  end
end

#vst3_plugin(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


153
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 153

def vst3_plugin(*args, **kwargs); end

#vst_plugin(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


156
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 156

def vst_plugin(*args, **kwargs); end

#zap(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


159
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 159

def zap(*args, **kwargs); end

#zsh_completion(*args, **kwargs) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • args (T.anything)
  • kwargs (T.anything)


162
# File 'sorbet/rbi/dsl/cask/dsl.rbi', line 162

def zsh_completion(*args, **kwargs); end