Class: Rivulet::CLI::Commands::New

Inherits:
Dry::CLI::Command
  • Object
show all
Defined in:
lib/rivulet/cli/new.rb

Constant Summary collapse

DIRS =
%w[
  app/handlers
  app/handlers/shared
  app/handlers/shared/steps
  app/handlers/shared/utils
  app/services
  app/services/shared
  app/services/shared/steps
  app/services/shared/utils
  app/models
  config
  db/migrations
].freeze

Instance Method Summary collapse

Instance Method Details

#call(name:) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/rivulet/cli/new.rb', line 24

def call(name:, **)
  DIRS.each { |d| create_dir "#{name}/#{d}" }

  write name, 'Gemfile',                    gemfile
  write name, 'config.ru',                 config_ru
  write name, 'config/application.rb',     application_config(name)
  write name, 'config/routes.rb',          routes_config
  write name, 'falcon.rb',                   falcon_config
  write name, 'app/handlers.rb', handlers_container
  write name, 'app/handlers/shared/container.rb', handlers_shared_container
  write name, 'app/handlers/shared/namespace.rb', handlers_shared_namespace
  write name, 'app/services.rb', services_container
  write name, 'app/services/shared/container.rb', services_shared_container
  write name, 'app/services/shared/namespace.rb', services_shared_namespace
  write name, 'app/application_contract.rb', application_contract_template

  puts "\nDone! Next steps:\n  cd #{name}\n  bundle install\n  bundle exec falcon host falcon.rb"
end