class Stairs::InteractiveConfiguration

Public Instance Methods

run!() click to toggle source
# File lib/stairs/interactive_configuration.rb, line 6
def run!
  if Stairs.configuration.use_defaults
    use_recommended_adapter!
  else
    configure_env_adapter
  end
end

Private Instance Methods

adapter_names() click to toggle source
# File lib/stairs/interactive_configuration.rb, line 54
def adapter_names
  @adapter_names ||= Stairs::EnvAdapters::ADAPTERS.map { |n, _a| n.to_s }
end
configure_env_adapter() click to toggle source
# File lib/stairs/interactive_configuration.rb, line 16
def configure_env_adapter
  require_installed_adapter!

  choice prompt do |yes|
    if yes
      use_recommended_adapter!
    else
      select_env_adapter
    end
  end
end
prompt() click to toggle source
# File lib/stairs/interactive_configuration.rb, line 47
def prompt
  ''.tap do |message|
    message << "Looks like you're using #{recommended_adapter_name} to "
    message << 'manage environment variables. Is this correct?'
  end
end
require_installed_adapter!() click to toggle source
# File lib/stairs/interactive_configuration.rb, line 58
    def require_installed_adapter!
      return if recommended_adapter

      abort <<-MSG
        Please install a supported ENV variable manager:
        #{adapter_names.join(', ')}
      MSG
    end
select_env_adapter() click to toggle source
# File lib/stairs/interactive_configuration.rb, line 28
def select_env_adapter
  choice 'Which would you prefer?', adapter_names do |name|
    adapter_class = Stairs::EnvAdapters::ADAPTERS[name.to_sym]
    Stairs.configuration.env_adapter = adapter_class.new
  end
end