Sha256: 166412ff3197bc99dbef40b9409ba83eac51e238af74cd29fdf45bfa084b6570
Contents?: true
Size: 1.13 KB
Versions: 1
Compression:
Stored size: 1.13 KB
Contents
module Hako class Container def initialize(app, definition, dry_run:) @app = app @definition = default_config.merge(definition) @dry_run = dry_run end %w[ image_tag docker_labels cpu memory links ].each do |name| define_method(name) do @definition[name] end define_method("#{name}=") do |val| @definition[name] = val end end def env @expanded_env ||= expand_env(@definition.fetch('env', {})) end private PROVIDERS_KEY = '$providers'.freeze def expand_env(env) env = env.dup provider_types = env.delete(PROVIDERS_KEY) || [] if @dry_run env else providers = load_providers(provider_types) EnvExpander.new(providers).expand(env) end end def load_providers(provider_configs) provider_configs.map do |yaml| Loader.new(Hako::EnvProviders, 'hako/env_providers').load(yaml.fetch('type')).new(@app.root_path, yaml) end end def default_config { 'docker_labels' => {}, 'links' => [], } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hako-0.7.0 | lib/hako/container.rb |