Class: Serviceable::Generators::ScaffoldGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/serviceable/scaffold_generator.rb

Instance Method Summary collapse

Instance Method Details

#generate_base_serviceObject



21
22
23
24
25
26
27
# File 'lib/generators/serviceable/scaffold_generator.rb', line 21

def generate_base_service
  say "Generating BaseService, Repository and Locale...", :green
  args = [ name ]
  args << "--skip_repository" if options[:skip_repository]
  args << "--skip_locale" if options[:skip_locale]
  generate "serviceable:base", *args
end

#generate_create_serviceObject



43
44
45
46
47
48
# File 'lib/generators/serviceable/scaffold_generator.rb', line 43

def generate_create_service
  return if options[:skip_create]

  say "Generating Create service...", :green
  generate "serviceable:create", *service_generator_args
end

#generate_destroy_serviceObject



57
58
59
60
61
62
# File 'lib/generators/serviceable/scaffold_generator.rb', line 57

def generate_destroy_service
  return if options[:skip_destroy]

  say "Generating Destroy service...", :green
  generate "serviceable:destroy", *service_generator_args
end

#generate_index_serviceObject



29
30
31
32
33
34
# File 'lib/generators/serviceable/scaffold_generator.rb', line 29

def generate_index_service
  return if options[:skip_index]

  say "Generating Index service...", :green
  generate "serviceable:index", *service_generator_args
end

#generate_presenterObject



64
65
66
67
68
69
# File 'lib/generators/serviceable/scaffold_generator.rb', line 64

def generate_presenter
  return unless options[:presenter]

  say "Generating Presenter...", :green
  generate "better_service:presenter", name
end

#generate_show_serviceObject



36
37
38
39
40
41
# File 'lib/generators/serviceable/scaffold_generator.rb', line 36

def generate_show_service
  return if options[:skip_show]

  say "Generating Show service...", :green
  generate "serviceable:show", *service_generator_args
end

#generate_update_serviceObject



50
51
52
53
54
55
# File 'lib/generators/serviceable/scaffold_generator.rb', line 50

def generate_update_service
  return if options[:skip_update]

  say "Generating Update service...", :green
  generate "serviceable:update", *service_generator_args
end

#show_completion_messageObject



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/generators/serviceable/scaffold_generator.rb', line 71

def show_completion_message
  say "\n" + "=" * 80
  say "Scaffold generation completed! 🎉", :green
  say "=" * 80
  say "\nGenerated base infrastructure:"
  say "  - #{class_name}::BaseService (app/services/#{file_name}/base_service.rb)"
  say "  - #{class_name}Repository (app/repositories/#{file_name}_repository.rb)" unless options[:skip_repository]
  say "  - I18n locale (config/locales/#{file_name}_services.en.yml)" unless options[:skip_locale]
  say "\nGenerated services (inheriting from #{class_name}::BaseService):"
  say "  - #{class_name}::IndexService" unless options[:skip_index]
  say "  - #{class_name}::ShowService" unless options[:skip_show]
  say "  - #{class_name}::CreateService" unless options[:skip_create]
  say "  - #{class_name}::UpdateService" unless options[:skip_update]
  say "  - #{class_name}::DestroyService" unless options[:skip_destroy]
  say "  - #{class_name}Presenter (app/presenters)" if options[:presenter]
  say "\nNext steps:"
  say "  1. Review and customize the generated services"
  say "  2. Update schemas with your specific validations"
  say "  3. Run the tests: rails test test/services/#{file_name}\n\n"
end