Sha256: a01cf110a7c4215c5d63ce707dd6870d2f8ab934d7bc703a4dd60d1897baff41
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
# frozen_string_literal: true require "interactive/prompt" require "interactive/message" module Interactive # CLI class for the interactive CLI module class CLI def initialize @inputs = {} end def perform(key) case key when "new" Message.greet initialize_project when "help" Message.help else puts "Invalid parameter" end end def initialize_project @inputs[:name] = Prompt.new("Enter the name of the project: ", "ask", required: true).perform types = { "App" => "", "API" => "--api" } @inputs[:type] = Prompt.new("Choose project type: ", "select", types, required: true).perform database_types = { "PostgreSQL" => "-d postgresql", "MySQL" => "-d mysql", "SQLite" => "" } @inputs[:database] = Prompt.new("Choose project's database: ", "select", database_types, required: true).perform create end def create # Install gems system("bin/setup") # Create project system(setup) # Prepare project requirements and give instructions Message.prepare end def setup base = "rails new" cmd = "" @inputs.each { |_key, value| cmd += "#{value} " } "#{base} #{cmd}".strip! end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rails-interactive-0.1.1 | lib/interactive.rb |
rails-interactive-0.1.0 | lib/interactive.rb |