Class: Cask::URL Private

Inherits:
SimpleDelegator
  • Object
show all
Includes:
Kernel
Defined in:
cask/url.rb,
sorbet/rbi/dsl/cask/url.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 corresponding to the url stanza.

Defined Under Namespace

Classes: BlockDSL, DSL

Constant Summary collapse

BlockReturn =

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.type_alias do
  T.any(URI::Generic, String, [T.any(URI::Generic, String), T::Hash[Symbol, T.untyped]])
end

Constants included from Kernel

Kernel::IGNORE_INTERRUPTS_MUTEX

Instance Method Summary collapse

Methods included from Kernel

#disk_usage_readable, #ensure_executable!, #ensure_formula_installed!, #exec_browser, #exec_editor, #ignore_interrupts, #interactive_shell, #number_readable, #odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #paths, #pretty_duration, #pretty_installed, #pretty_outdated, #pretty_uninstalled, #quiet_system, #redact_secrets, #redirect_stdout, #require?, #safe_system, #tap_and_name_comparison, #truncate_text_to_approximate_size, #which, #which_all, #which_editor, #with_custom_locale, #with_env, #with_homebrew_path

Constructor Details

#initialize(uri = nil, verified: nil, using: nil, tag: nil, branch: nil, revisions: nil, revision: nil, trust_cert: nil, cookies: nil, referer: nil, header: nil, user_agent: nil, data: nil, only_path: nil, caller_location: caller_locations.fetch(0), dsl: nil, &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.

Parameters:



214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
# File 'cask/url.rb', line 214

def initialize(
  uri = nil, verified: nil, using: nil, tag: nil, branch: nil, revisions: nil, revision: nil, trust_cert: nil,
  cookies: nil, referer: nil, header: nil, user_agent: nil, data: nil, only_path: nil,
  caller_location: caller_locations.fetch(0), dsl: nil, &block
)
  super(
    if block
      LazyObject.new do
        uri2, options = *BlockDSL.new(uri, dsl: T.must(dsl), &block).call
        options ||= {}
        DSL.new(uri2, **options)
      end
    else
      DSL.new(T.must(uri), verified:, using:, tag:, branch:, revisions:, revision:, trust_cert:, cookies:,
      referer:, header:, user_agent:, data:, only_path:)
    end
  )

  @from_block = T.let(!block.nil?, T::Boolean)
  @caller_location = T.let(caller_location, Thread::Backtrace::Location)
end

Instance Method Details

#branchT.untyped

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:

  • (T.untyped)


12
# File 'sorbet/rbi/dsl/cask/url.rbi', line 12

def branch; end

#cookiesHash{::String => ::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:



15
# File 'sorbet/rbi/dsl/cask/url.rbi', line 15

def cookies; end

#dataT.untyped

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:

  • (T.untyped)


18
# File 'sorbet/rbi/dsl/cask/url.rbi', line 18

def data; end

#from_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)


254
255
256
# File 'cask/url.rb', line 254

def from_block?
  @from_block
end

#header::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:



21
# File 'sorbet/rbi/dsl/cask/url.rbi', line 21

def header; end

#locationHomebrew::SourceLocation

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.



237
238
239
# File 'cask/url.rb', line 237

def location
  Homebrew::SourceLocation.new(@caller_location.lineno, raw_url_line&.index("url"))
end

#only_pathT.untyped

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:

  • (T.untyped)


24
# File 'sorbet/rbi/dsl/cask/url.rbi', line 24

def only_path; end

#pathT.untyped

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:

  • (T.untyped)


27
# File 'sorbet/rbi/dsl/cask/url.rbi', line 27

def path; end

#referer::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:



30
# File 'sorbet/rbi/dsl/cask/url.rbi', line 30

def referer; end

#revisionT.untyped

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:

  • (T.untyped)


33
# File 'sorbet/rbi/dsl/cask/url.rbi', line 33

def revision; end

#revisionsArray<::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:



36
# File 'sorbet/rbi/dsl/cask/url.rbi', line 36

def revisions; end

#schemeT.untyped

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:

  • (T.untyped)


39
# File 'sorbet/rbi/dsl/cask/url.rbi', line 39

def scheme; end

#specsHash{::Symbol => T.untyped}

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:



42
# File 'sorbet/rbi/dsl/cask/url.rbi', line 42

def specs; end

#tag::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:



45
# File 'sorbet/rbi/dsl/cask/url.rbi', line 45

def tag; end

#trust_certBoolean?

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, nil)


51
# File 'sorbet/rbi/dsl/cask/url.rbi', line 51

def trust_cert; end

#unversioned?(ignore_major_version: 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:

  • ignore_major_version (Boolean) (defaults to: false)

Returns:

  • (Boolean)


242
243
244
245
246
247
248
249
250
251
# File 'cask/url.rb', line 242

def unversioned?(ignore_major_version: false)
  interpolated_url = raw_url_line&.then { |line| line[/url\s+"([^"]+)"/, 1] }

  return false unless interpolated_url

  interpolated_url = interpolated_url.gsub(/\#{\s*arch\s*}/, "")
  interpolated_url = interpolated_url.gsub(/\#{\s*version\s*\.major\s*}/, "") if ignore_major_version

  interpolated_url.exclude?('#{')
end

#uri::String, ::URI::Generic

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:



54
# File 'sorbet/rbi/dsl/cask/url.rbi', line 54

def uri; end

#user_agent::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:



57
# File 'sorbet/rbi/dsl/cask/url.rbi', line 57

def user_agent; end

#using::Symbol, ...

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:



60
# File 'sorbet/rbi/dsl/cask/url.rbi', line 60

def using; end

#verifiedT.untyped

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:

  • (T.untyped)


63
# File 'sorbet/rbi/dsl/cask/url.rbi', line 63

def verified; end