Class: Cask::URL Private

Inherits:
Delegator show all
Includes:
Kernel
Defined in:
cask/url.rb,
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

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: T.must(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:

  • uri (URI::Generic, String, nil) (defaults to: nil)
  • verified (String, nil) (defaults to: nil)
  • using (Class, Symbol, nil) (defaults to: nil)
  • tag (String, nil) (defaults to: nil)
  • branch (String, nil) (defaults to: nil)
  • revisions (Array<String>, nil) (defaults to: nil)
  • revision (String, nil) (defaults to: nil)
  • trust_cert (Boolean, nil) (defaults to: nil)
  • cookies (Hash{String => String}, nil) (defaults to: nil)
  • referer (URI::Generic, String, nil) (defaults to: nil)
  • header (String, Array<String>, nil) (defaults to: nil)
  • user_agent (Symbol, String, nil) (defaults to: nil)
  • data (Hash{String => String}, nil) (defaults to: nil)
  • only_path (String, nil) (defaults to: nil)
  • caller_location (Thread::Backtrace::Location) (defaults to: T.must(caller_locations).fetch(0))
  • dsl (::Cask::DSL, nil) (defaults to: nil)
  • block (T.proc.params(arg0: T.all(String, BlockDSL::PageWithURL)) .returns(T.any(T.any(URI::Generic, String), [T.any(URI::Generic, String), Hash])), nil)


172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
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
# File 'cask/url.rb', line 172

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: T.must(caller_locations).fetch(0),
  dsl: nil,
  &block
)
  super(
    if block
      LazyObject.new do
        uri2, options = *BlockDSL.new(uri, 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 = !block.nil?
  @caller_location = caller_location
end

Instance Method Details

#__getobj__Object

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.



222
223
224
# File 'cask/url.rb', line 222

def __getobj__
  @dsl
end

#__setobj__(dsl) ⇒ Object

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.



226
227
228
# File 'cask/url.rb', line 226

def __setobj__(dsl)
  @dsl = dsl
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)


258
259
260
# File 'cask/url.rb', line 258

def from_block?
  @from_block
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.



231
232
233
# File 'cask/url.rb', line 231

def location
  Homebrew::SourceLocation.new(@caller_location.lineno, raw_url_line&.index("url"))
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)


247
248
249
250
251
252
253
254
255
# File 'cask/url.rb', line 247

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*version\s*\.major\s*}/, "") if ignore_major_version

  interpolated_url.exclude?('#{')
end