Class: Manifold::API::TerraformGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/manifold/api/workspace.rb

Overview

Handles terraform configuration generation

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, vectors, vector_service, manifold_yaml) ⇒ TerraformGenerator

Returns a new instance of TerraformGenerator.



9
10
11
12
13
14
# File 'lib/manifold/api/workspace.rb', line 9

def initialize(name, vectors, vector_service, manifold_yaml)
  @name = name
  @vectors = vectors
  @vector_service = vector_service
  @manifold_yaml = manifold_yaml
end

Instance Attribute Details

#manifold_configObject

Returns the value of attribute manifold_config.



7
8
9
# File 'lib/manifold/api/workspace.rb', line 7

def manifold_config
  @manifold_config
end

Instance Method Details

#generate(path) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/manifold/api/workspace.rb', line 16

def generate(path)
  config = Terraform::WorkspaceConfiguration.new(@name)
  @vectors.each do |vector|
    vector_config = @vector_service.load_vector_config(vector)
    config.add_vector(vector_config)
  end
  config.dimensions_config = @manifold_yaml["dimensions"]&.fetch("merge", nil) if @manifold_yaml["dimensions"]
  config.manifold_config = @manifold_yaml
  config.write(path)
end