Class: Gemvault::Manifest::StoredGem

Inherits:
Object
  • Object
show all
Defined in:
lib/gemvault/manifest.rb

Overview

One stored gem: its identity (a GemEntry) plus the integrity digest and encryption flag the manifest keeps alongside it.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_h(hash) ⇒ Object



16
17
18
19
20
# File 'lib/gemvault/manifest.rb', line 16

def self.from_h(hash)
  hash => { name:, version:, platform:, created_at:, sha256:, encrypted: }
  entry = GemEntry.new(name:, version:, platform:, created_at:)
  new(gem: entry, sha256:, encrypted:)
end

Instance Method Details

#filenameObject



22
# File 'lib/gemvault/manifest.rb', line 22

def filename = gem.filename

#matches?(bytes) ⇒ Boolean

Returns:

  • (Boolean)


24
# File 'lib/gemvault/manifest.rb', line 24

def matches?(bytes) = Manifest.digest(bytes) == sha256

#to_hObject



26
27
28
29
30
31
# File 'lib/gemvault/manifest.rb', line 26

def to_h
  {
    name: gem.name, version: gem.version, platform: gem.platform,
    created_at: gem.created_at, sha256:, encrypted:
  }
end