Class: Bottle
Defined Under Namespace
Classes: Filename
Instance Attribute Summary collapse
-
#cellar ⇒ Object
readonly
private
Returns the value of attribute cellar.
-
#name ⇒ Object
readonly
private
Returns the value of attribute name.
-
#rebuild ⇒ Object
readonly
private
Returns the value of attribute rebuild.
-
#resource ⇒ Object
readonly
private
Returns the value of attribute resource.
-
#tag ⇒ Object
readonly
private
Returns the value of attribute tag.
Instance Method Summary collapse
- #clear_cache ⇒ Object
- #compatible_locations? ⇒ Boolean
- #fetch(verify_download_integrity: true) ⇒ Object
- #fetch_tab ⇒ Object
- #filename ⇒ Filename private
-
#initialize(formula, spec, tag = nil) ⇒ Bottle
constructor
A new instance of Bottle.
-
#skip_relocation? ⇒ Boolean
private
Does the bottle need to be relocated?.
- #stage ⇒ Object
- #tab_attributes ⇒ Object
Constructor Details
#initialize(formula, spec, tag = nil) ⇒ Bottle
Returns a new instance of Bottle.
339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 |
# File 'software_spec.rb', line 339 def initialize(formula, spec, tag = nil) @name = formula.name @resource = Resource.new @resource.owner = formula @spec = spec tag_spec = spec.tag_specification_for(Utils::Bottles.tag(tag)) @tag = tag_spec.tag @cellar = tag_spec.cellar @rebuild = spec.rebuild @resource.version(formula.pkg_version.to_s) @resource.checksum = tag_spec.checksum @fetch_tab_retried = false root_url(spec.root_url, spec.root_url_specs) end |
Instance Attribute Details
#cellar ⇒ Object (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 the value of attribute cellar.
334 335 336 |
# File 'software_spec.rb', line 334 def cellar @cellar end |
#name ⇒ Object (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 the value of attribute name.
334 335 336 |
# File 'software_spec.rb', line 334 def name @name end |
#rebuild ⇒ Object (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 the value of attribute rebuild.
334 335 336 |
# File 'software_spec.rb', line 334 def rebuild @rebuild end |
#resource ⇒ Object (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 the value of attribute resource.
334 335 336 |
# File 'software_spec.rb', line 334 def resource @resource end |
#tag ⇒ Object (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 the value of attribute tag.
334 335 336 |
# File 'software_spec.rb', line 334 def tag @tag end |
Instance Method Details
#clear_cache ⇒ Object
368 369 370 371 372 |
# File 'software_spec.rb', line 368 def clear_cache @resource.clear_cache github_packages_manifest_resource&.clear_cache @fetch_tab_retried = false end |
#compatible_locations? ⇒ Boolean
374 375 376 |
# File 'software_spec.rb', line 374 def compatible_locations? @spec.compatible_locations?(tag: @tag) end |
#fetch(verify_download_integrity: true) ⇒ Object
359 360 361 362 363 364 365 366 |
# File 'software_spec.rb', line 359 def fetch(verify_download_integrity: true) @resource.fetch(verify_download_integrity:) rescue DownloadError raise unless fallback_on_error fetch_tab retry end |
#fetch_tab ⇒ Object
387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 |
# File 'software_spec.rb', line 387 def fetch_tab return if github_packages_manifest_resource.blank? # a checksum is used later identifying the correct tab but we do not have the checksum for the manifest/tab github_packages_manifest_resource.fetch(verify_download_integrity: false) begin github_packages_manifest_resource_tab(github_packages_manifest_resource) rescue RuntimeError => e raise DownloadError.new(github_packages_manifest_resource, e) end rescue DownloadError raise unless fallback_on_error retry rescue ArgumentError raise if @fetch_tab_retried @fetch_tab_retried = true github_packages_manifest_resource.clear_cache retry end |
#filename ⇒ Filename
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.
417 418 419 |
# File 'software_spec.rb', line 417 def filename Filename.create(resource.owner, @tag, @spec.rebuild) end |
#skip_relocation? ⇒ 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.
Does the bottle need to be relocated?
379 380 381 |
# File 'software_spec.rb', line 379 def skip_relocation? @spec.skip_relocation?(tag: @tag) end |
#stage ⇒ Object
383 384 385 |
# File 'software_spec.rb', line 383 def stage resource.downloader.stage end |
#tab_attributes ⇒ Object
410 411 412 413 414 |
# File 'software_spec.rb', line 410 def tab_attributes return {} unless github_packages_manifest_resource&.downloaded? github_packages_manifest_resource_tab(github_packages_manifest_resource) end |