class Vara::Metadata::Release

“Struct” representing the information about a single release in metadata.yml's releases array @example entry from metadata.yml

releases:
  - file: cf-170.tgz
    name: cf
    version: '170'
    md5: 8a0700de688b4fdd270b41c4a4de9d0e
    url: https://releng-artifacts.s3.amazonaws.com/cf-170.tgz

Attributes

aws[R]

@return [OpenStruct] The AWS Configuration

basename[R]

@return [String] The name of the release file

md5[R]

@return [String] The md5 of the release file's content

name[R]

@return [String] Name of the release

sha1[R]

@return [String] The sha1 of the release file's content

version[R]

@return [String] Version of the release

Public Class Methods

from_file(release_tarball_path) click to toggle source

Infers the metadata given a release file on disk @param release_tarball_path [String] The path to the release file on disk @return [Vara::ReleaseMetadata]

# File lib/vara/metadata/release.rb, line 35
def self.from_file(release_tarball_path)
  md5      = Digest::MD5.file(release_tarball_path).hexdigest
  sha1     = Digest::SHA1.file(release_tarball_path).hexdigest
  basename = File.basename(release_tarball_path)

  release_parts = basename.gsub(/\.tgz$/, '')
  name, version = release_parts.split('-', 2)

  new(name: name, version: version, file: basename, md5: md5, sha1: sha1)
end
new(name:, version:, file:, md5:, sha1:, url: nil, aws: nil) click to toggle source

@param name [String] @param version [String] @param file [String] @param md5 [String] @param url [String]

# File lib/vara/metadata/release.rb, line 51
def initialize(name:, version:, file:, md5:, sha1:, url: nil, aws: nil)
  @name     = name
  @version  = version
  @basename = file
  @md5      = md5
  @sha1     = sha1
  @url      = url
  @aws = OpenStruct.new(aws) if aws
end

Public Instance Methods

to_s() click to toggle source

If the URL is set, a markdown-style URL with the basename attribute. Otherwise, just the basename. @return [String]

# File lib/vara/metadata/release.rb, line 72
def to_s
  @url ? "[#{basename}](#{@url})" : basename
end
url() click to toggle source
# File lib/vara/metadata/release.rb, line 61
def url
  if @url
    @url
  elsif @aws
    "#{aws.bucket_name}/#{aws.filename}"
  end
end