Module: Holivia::EnvManager

Included in:
Configuration
Defined in:
lib/holivia/env_manager.rb

Instance Method Summary collapse

Instance Method Details

#add_env(name, url:, debug: nil) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/holivia/env_manager.rb', line 8

def add_env(name, url:, debug: nil)
  env = { "url" => url }
  env["debug"] = debug unless debug.nil?
  config["environments"][name] = env
  config["current_env"] = name if config["environments"].size == 1
  save_config
end

#remove_env(name) ⇒ Object

Raises:



30
31
32
33
34
35
36
37
# File 'lib/holivia/env_manager.rb', line 30

def remove_env(name)
  raise ConfigError, "Cannot remove '#{name}' — it is the only environment" if config["environments"].size == 1

  config["environments"].delete(name)
  config["current_env"] = config["environments"].keys.first if name == current_env
  FileUtils.rm_f(File.join(config_dir, "credentials.#{name}.json"))
  save_config
end

#update_env(name, **attrs) ⇒ Object

Raises:



23
24
25
26
27
28
# File 'lib/holivia/env_manager.rb', line 23

def update_env(name, **attrs)
  raise ConfigError, "Unknown environment '#{name}'" unless config["environments"].key?(name)

  attrs.each { |k, v| config["environments"][name][k.to_s] = v }
  save_config
end

#use_env(name) ⇒ Object

Raises:



16
17
18
19
20
21
# File 'lib/holivia/env_manager.rb', line 16

def use_env(name)
  raise ConfigError, "Unknown environment '#{name}'" unless config["environments"].key?(name)

  config["current_env"] = name
  save_config
end