Class: Vara::Metadata::Release
- Inherits:
-
Object
- Object
- Vara::Metadata::Release
- Defined in:
- lib/vara/metadata/release.rb
Overview
“Struct” representing the information about a single release in metadata.yml’s releases array
Instance Attribute Summary collapse
-
#aws ⇒ OpenStruct
readonly
The AWS Configuration.
-
#basename ⇒ String
readonly
The name of the release file.
-
#md5 ⇒ String
readonly
The md5 of the release file’s content.
-
#name ⇒ String
readonly
Name of the release.
-
#sha1 ⇒ String
readonly
The sha1 of the release file’s content.
-
#version ⇒ String
readonly
Version of the release.
Class Method Summary collapse
-
.from_file(release_tarball_path) ⇒ Vara::ReleaseMetadata
Infers the metadata given a release file on disk.
Instance Method Summary collapse
-
#initialize(name:, version:, file:, md5:, sha1:, url: nil, aws: nil) ⇒ Release
constructor
A new instance of Release.
-
#to_s ⇒ String
If the URL is set, a markdown-style URL with the basename attribute.
- #url ⇒ Object
Constructor Details
#initialize(name:, version:, file:, md5:, sha1:, url: nil, aws: nil) ⇒ Release
Returns a new instance of Release.
51 52 53 54 55 56 57 58 59 |
# 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 |
Instance Attribute Details
#aws ⇒ OpenStruct (readonly)
Returns The AWS Configuration.
30 31 32 |
# File 'lib/vara/metadata/release.rb', line 30 def aws @aws end |
#basename ⇒ String (readonly)
Returns The name of the release file.
21 22 23 |
# File 'lib/vara/metadata/release.rb', line 21 def basename @basename end |
#md5 ⇒ String (readonly)
Returns The md5 of the release file’s content.
24 25 26 |
# File 'lib/vara/metadata/release.rb', line 24 def md5 @md5 end |
#name ⇒ String (readonly)
Returns Name of the release.
15 16 17 |
# File 'lib/vara/metadata/release.rb', line 15 def name @name end |
#sha1 ⇒ String (readonly)
Returns The sha1 of the release file’s content.
27 28 29 |
# File 'lib/vara/metadata/release.rb', line 27 def sha1 @sha1 end |
#version ⇒ String (readonly)
Returns Version of the release.
18 19 20 |
# File 'lib/vara/metadata/release.rb', line 18 def version @version end |
Class Method Details
.from_file(release_tarball_path) ⇒ Vara::ReleaseMetadata
Infers the metadata given a release file on disk
35 36 37 38 39 40 41 42 43 44 |
# 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 |
Instance Method Details
#to_s ⇒ String
If the URL is set, a markdown-style URL with the basename attribute. Otherwise, just the basename.
72 73 74 |
# File 'lib/vara/metadata/release.rb', line 72 def to_s @url ? "[#{basename}](#{@url})" : basename end |
#url ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/vara/metadata/release.rb', line 61 def url if @url @url elsif @aws "#{aws.bucket_name}/#{aws.filename}" end end |