class Kontena::Cli::Apps::YAML::ServiceExtender
Attributes
service_config[R]
Public Class Methods
new(service_config)
click to toggle source
@param [Hash] service_config
# File lib/kontena/cli/apps/yaml/service_extender.rb, line 10 def initialize(service_config) @service_config = service_config end
Public Instance Methods
extend(from)
click to toggle source
@param [Hash] from @return [Hash]
# File lib/kontena/cli/apps/yaml/service_extender.rb, line 16 def extend(from) service_config['environment'] = extend_env_vars( from['environment'], service_config['environment'] ) service_config['secrets'] = extend_secrets( from['secrets'], service_config['secrets'] ) build_args = extend_build_args(safe_dig(from, 'build', 'args'), safe_dig(service_config, 'build', 'args')) unless build_args.empty? service_config['build'] = {} unless service_config['build'] service_config['build']['args'] = build_args end from.merge(service_config) end
Private Instance Methods
extend_build_args(from, to)
click to toggle source
# File lib/kontena/cli/apps/yaml/service_extender.rb, line 66 def extend_build_args(from, to) args = to || {} if from from.each do |k,v| args[k] = v unless args.has_key?(k) end end args end
extend_env_vars(from, to)
click to toggle source
@param [Array] from @param [Array] to @return [Array]
# File lib/kontena/cli/apps/yaml/service_extender.rb, line 39 def extend_env_vars(from, to) env_vars = to || [] if from from.each do |env| env_vars << env unless to && to.find do |key| key.split('=').first == env.split('=').first end end end env_vars end
extend_secrets(from, to)
click to toggle source
@param [Array] from @param [Array] to @return [Array]
# File lib/kontena/cli/apps/yaml/service_extender.rb, line 54 def extend_secrets(from, to) secrets = to || [] if from from.each do |from_secret| secrets << from_secret unless to && to.any? do |to_secret| to_secret['secret'] == from_secret['secret'] end end end secrets end