Class: Terradactyl::Terraform::VersionManager::Inventory

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/terradactyl/terraform/version_manager/inventory.rb

Constant Summary collapse

ERROR_VERSION_MISSING =
'Version not installed'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.loadObject



19
20
21
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 19

def self.load
  new
end

Instance Method Details

#[](semver) ⇒ Object



51
52
53
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 51

def [](semver)
  manifest[semver]
end

#binariesObject



27
28
29
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 27

def binaries
  Dir.glob("#{install_dir}/terraform-*").sort
end

#each(&block) ⇒ Object



55
56
57
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 55

def each(&block)
  manifest.each(&block)
end

#install_dirObject



23
24
25
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 23

def install_dir
  VersionManager.install_dir
end

#latestObject



41
42
43
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 41

def latest
  versions.last
end

#manifestObject



37
38
39
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 37

def manifest
  Hash[versions.zip(binaries)]
end

#validate(semver) ⇒ Object



45
46
47
48
49
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 45

def validate(semver)
  return manifest[semver] if manifest[semver]

  raise error_version_missing(semver)
end

#versionsObject



31
32
33
34
35
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 31

def versions
  (binaries.map do |path|
    File.basename(path).match(inventory_name_re)['version']
  end).sort
end