Class: SwarmClusterCliOpe::SyncConfigs::EnvConfigs
- Inherits:
-
Object
- Object
- SwarmClusterCliOpe::SyncConfigs::EnvConfigs
- Defined in:
- lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb
Overview
Classe per la gestione dell’ambiente differente fra local e remote sono presenti le variabili di classe per definire una minima DSL per poter definire le variabili disponibili e i default da utilizzare
Direct Known Subclasses
Class Method Summary collapse
-
.define_cfgs(name, default_env: nil, configuration_name:, default_value: nil, from_proc: nil) ⇒ Object
Costruisce i metodi che restituiscono i valori delle configurazioni.
Instance Method Summary collapse
-
#container ⇒ SwarmClusterCliOpe::Commands::Container, SwarmClusterCliOpe::Kubernetes::Pod
Metodo che richiama la lambda della generazione del container al momento che ne è proprio necessario.
-
#initialize(sync_configs, configs, container) ⇒ EnvConfigs
constructor
A new instance of EnvConfigs.
- #service_name ⇒ String
Constructor Details
#initialize(sync_configs, configs, container) ⇒ EnvConfigs
Returns a new instance of EnvConfigs.
11 12 13 14 15 |
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 11 def initialize(sync_configs, configs, container) @configs = configs @sync_configs = sync_configs @lambda_container = container end |
Class Method Details
.define_cfgs(name, default_env: nil, configuration_name:, default_value: nil, from_proc: nil) ⇒ Object
Costruisce i metodi che restituiscono i valori delle configurazioni
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 40 def self.define_cfgs(name, default_env: nil, configuration_name:, default_value: nil, from_proc: nil) configuration_name ||= name define_method(name) do return self.instance_variable_get("@#{name}") if self.instance_variable_defined?("@#{name}") #valore restituito direttamente dalla configurazione if @configs.key?(configuration_name) value = @configs["#{configuration_name}".to_sym] end # se non abbiamo nulla dalle configurazioni utilizziamo le variabili d'ambiente if value.nil? and default_env #cerchiamo nella lista delle variabili ambiente possibili, la prima che ha un valore la tengo per buona env_vars = [] env_vars << @configs["#{configuration_name}_env".to_sym] env_vars << default_env env_vars.flatten! env_vars.compact! env_vars.each do |env_var| value = find_env_file_variable(env_var) break unless value.nil? end end # se non abbiamo ancora nulla e abbiamo una proc proseguiamo if value.nil? and from_proc value = from_proc.call(container) end value = value || default_value self.instance_variable_set("@#{name}", value) end end |
Instance Method Details
#container ⇒ SwarmClusterCliOpe::Commands::Container, SwarmClusterCliOpe::Kubernetes::Pod
Metodo che richiama la lambda della generazione del container al momento che ne è proprio necessario
21 22 23 |
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 21 def container @container ||= @lambda_container.call end |
#service_name ⇒ String
26 27 28 |
# File 'lib/swarm_cluster_cli_ope/sync_configs/env_configs.rb', line 26 def service_name @configs[:service] || @sync_configs.service end |