Class: KY::Compilation

Inherits:
Object
  • Object
show all
Defined in:
lib/ky/compilation.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Compilation



5
6
7
# File 'lib/ky/compilation.rb', line 5

def initialize(opts={})
  @configuration = Configuration.new(opts)
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



3
4
5
# File 'lib/ky/compilation.rb', line 3

def configuration
  @configuration
end

#deploy_generationObject (readonly)

Returns the value of attribute deploy_generation.



3
4
5
# File 'lib/ky/compilation.rb', line 3

def deploy_generation
  @deploy_generation
end

Instance Method Details

#compile(env1path, env2path, base_output_dir) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/ky/compilation.rb', line 9

def compile(env1path, env2path, base_output_dir)
  full_output_dir = Pathname.new(base_output_dir).join(configuration[:environment].to_s).to_s
  FileUtils.mkdir_p(full_output_dir)
  env_obj = EnvGeneration.new(env1path, env2path, configuration)
  @deploy_generation =  DeployGeneration.new(full_output_dir, env_obj.immutable_project_name, configuration)
  deploys_hash = deploy_generation.to_h
  deploys_hash.each do |file_path, deploy_hash|
    File.write(file_path, Manipulation.merge_hash(deploy_hash, env_obj.to_h).to_plain_yaml)
  end
  Manipulation.write_configs_encode_if_needed(env_obj.config_hsh, env_obj.secret_hsh, full_output_dir, configuration[:project_name])
end