Module: Cask::Metadata Private

Included in:
Cask
Defined in:
Library/Homebrew/cask/metadata.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Helper module for reading and writing cask metadata.

Constant Summary collapse

METADATA_SUBDIR =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

".metadata"
TIMESTAMP_FORMAT =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

"%Y%m%d%H%M%S.%L"

Instance Method Summary collapse

Instance Method Details

#metadata_master_container_pathObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.


12
13
14
# File 'Library/Homebrew/cask/metadata.rb', line 12

def 
  @metadata_master_container_path ||= caskroom_path.join(METADATA_SUBDIR)
end

#metadata_subdir(leaf, version: self.version, timestamp: :latest, create: false) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Raises:


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'Library/Homebrew/cask/metadata.rb', line 42

def (leaf, version: self.version, timestamp: :latest, create: false)
  raise CaskError, "Cannot create metadata subdir when timestamp is :latest." if create && timestamp == :latest

  unless leaf.respond_to?(:empty?) && !leaf.empty?
    raise CaskError, "Cannot create metadata subdir for empty leaf."
  end

  parent = (version: version, timestamp: timestamp, create: create)

  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) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Raises:


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'Library/Homebrew/cask/metadata.rb', line 24

def (version: self.version, timestamp: :latest, create: false)
  raise CaskError, "Cannot create metadata path when timestamp is :latest." if create && timestamp == :latest

  path = if timestamp == :latest
    Pathname.glob((version: version).join("*")).max
  else
    timestamp = new_timestamp if timestamp == :now
    (version: version).join(timestamp)
  end

  if create && !path.directory?
    odebug "Creating metadata directory #{path}."
    path.mkpath
  end

  path
end

#metadata_versioned_path(version: self.version) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Raises:


16
17
18
19
20
21
22
# File 'Library/Homebrew/cask/metadata.rb', line 16

def (version: self.version)
  cask_version = (version || :unknown).to_s

  raise CaskError, "Cannot create metadata path with empty version." if cask_version.empty?

  .join(cask_version)
end