Class: SwarmClusterCliOpe::SyncConfigs::EnvConfigs

Inherits:
Object
  • Object
show all
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

BaseDatabase::EnvConfigs

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sync_configs, configs, container) ⇒ EnvConfigs

Returns a new instance of EnvConfigs.

Parameters:



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

Parameters:

  • name (String, Symbol)

    -> nome della stringa con cui viene generato il metodo

  • default_env (String, Symbol, Array<String,Symbol>) (defaults to: nil)

    -> nome env default nel caso non sia passato

  • configuration_name (String, Symbol)

    -> nome della configurazione da utilizzare per estrapolare la configurazione in automatico viene tenuto conto se cercare per la versione con _env o senza.…precedenza SENZA

  • from_proc (Block) (defaults to: nil)

    -> proc da utilizzare per ricavare il valore

  • default_value (nil, String) (defaults to: nil)

    se non è estrapolato nessun valore, viene utilizzato il valore di default



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

#containerSwarmClusterCliOpe::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_nameString

Returns:

  • (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