Class: Terradactyl::Terraform::VersionManager::Inventory
- Inherits:
-
Object
- Object
- Terradactyl::Terraform::VersionManager::Inventory
- 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
- #[](semver) ⇒ Object
- #binaries ⇒ Object
- #each(&block) ⇒ Object
- #install_dir ⇒ Object
- #latest ⇒ Object
- #manifest ⇒ Object
- #validate(semver) ⇒ Object
- #versions ⇒ Object
Class Method Details
.load ⇒ Object
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 |
#binaries ⇒ Object
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_dir ⇒ Object
23 24 25 |
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 23 def install_dir VersionManager.install_dir end |
#latest ⇒ Object
41 42 43 |
# File 'lib/terradactyl/terraform/version_manager/inventory.rb', line 41 def latest versions.last end |
#manifest ⇒ Object
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 |
#versions ⇒ Object
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 |