Class: Nvoi::Cli::Onboard::Steps::Env
- Inherits:
-
Object
- Object
- Nvoi::Cli::Onboard::Steps::Env
- Includes:
- Ui
- Defined in:
- lib/nvoi/cli/onboard/steps/env.rb
Overview
Collects environment variables and secrets
Constant Summary collapse
- ACTIONS =
[ { name: "Add variable", value: :add }, { name: "Add secret (masked)", value: :secret }, { name: "Done", value: :done } ].freeze
Constants included from Ui
Instance Method Summary collapse
-
#call(existing_env: nil, existing_secrets: nil) ⇒ Object
Returns [env, secrets] tuple.
-
#initialize(prompt, test_mode: false) ⇒ Env
constructor
A new instance of Env.
Methods included from Ui
#box, #error, #output, #prompt_with_retry, #section, #success, #table, #with_spinner
Constructor Details
#initialize(prompt, test_mode: false) ⇒ Env
Returns a new instance of Env.
17 18 19 20 |
# File 'lib/nvoi/cli/onboard/steps/env.rb', line 17 def initialize(prompt, test_mode: false) @prompt = prompt @test_mode = test_mode end |
Instance Method Details
#call(existing_env: nil, existing_secrets: nil) ⇒ Object
Returns [env, secrets] tuple
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/nvoi/cli/onboard/steps/env.rb', line 23 def call(existing_env: nil, existing_secrets: nil) section "Environment Variables" env = (existing_env || {}).dup secrets = (existing_secrets || {}).dup # Add default env["RAILS_ENV"] ||= "production" loop do show_table(env, secrets) unless env.empty? && secrets.empty? case @prompt.select("Action:", ACTIONS) when :add key = @prompt.ask("Variable name:") { |q| q.required true } value = @prompt.ask("Value:") { |q| q.required true } env[key] = value when :secret key = @prompt.ask("Secret name:") { |q| q.required true } value = @prompt.mask("Value:") { |q| q.required true } secrets[key] = value when :done break end end [env, secrets] end |