Module: Cask::Metadata Private
- Extended by:
- T::Helpers
- Includes:
- Utils::Output::Mixin
- Included in:
- Cask
- Defined in:
- cask/metadata.rb
Overview
This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.
Helper module for reading and writing cask metadata.
Constant Summary collapse
- METADATA_SUBDIR =
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.
".metadata"- TIMESTAMP_FORMAT =
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.
"%Y%m%d%H%M%S.%L"
Instance Method Summary collapse
- #metadata_main_container_path(caskroom_path: self.caskroom_path) ⇒ Pathname private
- #metadata_subdir(leaf, version: self.version, timestamp: :latest, create: false, caskroom_path: self.caskroom_path) ⇒ Pathname? private
- #metadata_timestamped_path(version: self.version, timestamp: :latest, create: false, caskroom_path: self.caskroom_path) ⇒ Pathname? private
- #metadata_versioned_path(version: self.version, caskroom_path: self.caskroom_path) ⇒ Pathname private
Methods included from Utils::Output::Mixin
#odebug, #odeprecated, #odie, #odisabled, #ofail, #oh1, #oh1_title, #ohai, #ohai_title, #onoe, #opoo, #opoo_outside_github_actions, #pretty_duration, #pretty_installed, #pretty_outdated, #pretty_uninstalled
Instance Method Details
#metadata_main_container_path(caskroom_path: self.caskroom_path) ⇒ Pathname
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.
18 19 20 |
# File 'cask/metadata.rb', line 18 def (caskroom_path: self.caskroom_path) caskroom_path.join(METADATA_SUBDIR) end |
#metadata_subdir(leaf, version: self.version, timestamp: :latest, create: false, caskroom_path: self.caskroom_path) ⇒ Pathname?
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.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'cask/metadata.rb', line 71 def (leaf, version: self.version, timestamp: :latest, create: false, caskroom_path: self.caskroom_path) raise CaskError, "Cannot create metadata subdir when timestamp is :latest." if create && == :latest raise CaskError, "Cannot create metadata subdir for empty leaf." if !leaf.respond_to?(:empty?) || leaf.empty? parent = (version:, timestamp:, create:, caskroom_path:) return if parent.nil? subdir = parent.join(leaf) if create && !subdir.directory? odebug "Creating metadata subdirectory: #{subdir}" subdir.mkpath end subdir end |
#metadata_timestamped_path(version: self.version, timestamp: :latest, create: false, caskroom_path: self.caskroom_path) ⇒ Pathname?
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.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'cask/metadata.rb', line 39 def (version: self.version, timestamp: :latest, create: false, caskroom_path: self.caskroom_path) case when :latest raise CaskError, "Cannot create metadata path when timestamp is :latest." if create return Pathname.glob((version:, caskroom_path:).join("*")).max when :now = when Symbol raise CaskError, "Invalid timestamp symbol :#{}. Valid symbols are :latest and :now." end path = (version:, caskroom_path:).join() if create && !path.directory? odebug "Creating metadata directory: #{path}" path.mkpath end path end |
#metadata_versioned_path(version: self.version, caskroom_path: self.caskroom_path) ⇒ Pathname
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.
23 24 25 26 27 28 29 |
# File 'cask/metadata.rb', line 23 def (version: self.version, caskroom_path: self.caskroom_path) cask_version = (version || :unknown).to_s raise CaskError, "Cannot create metadata path with empty version." if cask_version.empty? (caskroom_path:).join(cask_version) end |