class KY::DeployGeneration
Attributes
configuration[R]
deployment_yaml[R]
full_output_dir[R]
proc_commands[R]
project_name[R]
Public Class Methods
new(full_output_dir, project_name, configuration=Configuration.new)
click to toggle source
# File lib/ky/deploy_generation.rb, line 3 def initialize(full_output_dir, project_name, configuration=Configuration.new) @configuration = configuration @proc_commands = File.read(configuration[:procfile_path]).split("\n") .map {|line| line.split(':', 2) } .map {|k, v| [k, ["/bin/bash","-c", v]] } .to_h @full_output_dir = full_output_dir @project_name = project_name || configuration[:project_name] @deployment_yaml = read_deployment_yaml end
Public Instance Methods
call()
click to toggle source
# File lib/ky/deploy_generation.rb, line 14 def call to_h.each do |file_path, deploy_hash| File.write(file_path, deploy_hash.to_plain_yaml) end end
to_h()
click to toggle source
# File lib/ky/deploy_generation.rb, line 20 def to_h proc_commands.map do |id, command_array| ["#{full_output_dir}/#{id}.deployment.yml", template_hash(id, command_array)] end.to_h end
Private Instance Methods
default_deployment_template()
click to toggle source
# File lib/ky/deploy_generation.rb, line 38 def default_deployment_template "#{__dir__}/../../templates/deployment.yml" end
deploy_merge(id)
click to toggle source
# File lib/ky/deploy_generation.rb, line 53 def deploy_merge(id) return {} unless configuration[:merge] configuration[:merge][id].to_h end
read_deployment_yaml()
click to toggle source
# File lib/ky/deploy_generation.rb, line 30 def read_deployment_yaml if configuration['deployment'] File.read(configuration['deployment']) else File.read(default_deployment_template) end end
template_hash(id, command_array)
click to toggle source
# File lib/ky/deploy_generation.rb, line 42 def template_hash(id, command_array) app_name = configuration['app_name'] || "#{project_name}-#{id}" template_context = Template.new(configuration).context(app_name: app_name, id: id, command_array: command_array) tmp = Manipulation.merge_hash( YAML.load( ERB.new(deployment_yaml).result(template_context) ), deploy_merge(id) ) end