Class: Kaze::Commands::App::StackFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/kaze/commands/app/stack_factory.rb

Class Method Summary collapse

Class Method Details

.make(stack) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
# File 'lib/kaze/commands/app/stack_factory.rb', line 2

def self.make(stack)
  available_stacks = {
    hotwire: 'hotwire',
    react: 'inertia_react',
    vue: 'inertia_vue'
  }

  raise Kaze::Commands::InvalidStackError, "Invalid stack. Supported stacks are #{available_stacks.keys.map { |k| "[#{k}]" }.join(', ')}." unless available_stacks.key?(stack)

  Object.const_get("Kaze::Commands::App::#{available_stacks[stack].split(/_/).map(&:capitalize).join}Stack").new
end