Sha256: 114b11a9c640257f1e755ae00711c19f51fb7b1cf3e50a7d44dab21c7397a019
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
module Stairs class InteractiveConfiguration < Stairs::Step title 'Configuration' description 'Interactive prompt for configuring Stairs' def run! if Stairs.configuration.use_defaults use_recommended_adapter! else configure_env_adapter end end private def configure_env_adapter require_installed_adapter! choice prompt do |yes| if yes use_recommended_adapter! else select_env_adapter end end end 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 def use_recommended_adapter! Stairs.configuration.env_adapter = recommended_adapter.new end def recommended_adapter @recommended_adapter ||= Stairs::EnvAdapters.recommended_adapter end def recommended_adapter_name Stairs::EnvAdapters.name_for_adapter_class(recommended_adapter) end def prompt ''.tap do |message| message << "Looks like you're using #{recommended_adapter_name} to " message << 'manage environment variables. Is this correct?' end end def adapter_names @adapter_names ||= Stairs::EnvAdapters::ADAPTERS.map { |n, _a| n.to_s } end def require_installed_adapter! return if recommended_adapter abort <<-MSG Please install a supported ENV variable manager: #{adapter_names.join(', ')} MSG end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
stairs-0.10.0 | lib/stairs/interactive_configuration.rb |