class Dotenvious::Prompter

Attributes

filename[R]

Public Class Methods

new(filename = DEFAULT_ENV_FILE) click to toggle source
# File lib/dotenvious/prompter.rb, line 8
def initialize(filename = DEFAULT_ENV_FILE)
  @filename = filename
end

Public Instance Methods

run() click to toggle source
# File lib/dotenvious/prompter.rb, line 12
def run
  keys_in_question.each do |key, status|
    decision = prompt(key, status)
    return if decision == 'q'
    next unless decision.downcase == 'y'

    if status == 'missing'
      EnvAppender.new(filename).append(key)
    elsif status == 'mismatched'
      ValueReplacer.new(filename).replace(key)
    end
  end
end

Private Instance Methods

display_mismatched_output(var) click to toggle source
# File lib/dotenvious/prompter.rb, line 54
def display_mismatched_output(var)
  puts "ENV[#{var}] is set to: #{ENV[var]}"
  puts "Example [#{var}] is set to: #{ENV_EXAMPLE[var]}"
  puts "Replace with the example value? [y/n/q]"
end
display_missing_output(var) click to toggle source
# File lib/dotenvious/prompter.rb, line 49
def display_missing_output(var)
  puts "#{var}=#{ENV_EXAMPLE[var]}"
  puts "Add to #{filename}? [y/n/q]"
end
keys_in_question() click to toggle source
# File lib/dotenvious/prompter.rb, line 30
def keys_in_question
  missing_keys = missing_vars.zip(['missing'] * missing_vars.length)
  mismatched_keys = mismatched_vars.zip(['mismatched'] * mismatched_vars.length)
  missing_keys + mismatched_keys
end
mismatched_vars() click to toggle source
# File lib/dotenvious/prompter.rb, line 40
def mismatched_vars
  MismatchedVariableFinder.mismatched_vars
end
missing_vars() click to toggle source
# File lib/dotenvious/prompter.rb, line 36
def missing_vars
  MissingVariableFinder.missing_required_vars
end
prompt(var, status) click to toggle source
# File lib/dotenvious/prompter.rb, line 44
def prompt(var, status)
  send(:"display_#{status}_output", var)
  STDIN.gets.strip
end