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
@return [OpenStruct] The AWS Configuration
@return [String] The name of the release file
@return [String] The md5 of the release file's content
@return [String] Name of the release
@return [String] The sha1 of the release file's content
@return [String] Version of the release
Public Class Methods
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
@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
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
# File lib/vara/metadata/release.rb, line 61 def url if @url @url elsif @aws "#{aws.bucket_name}/#{aws.filename}" end end