Class: Develoz::Generators::ApiGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/develoz/api/api_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#add_gem, #app_class, #app_name, #append_env, #apply_template, #ensure_gitignore, #inject_once, #insert_route, #migration_exists?, next_migration_timestamp

Class Method Details

.source_rootObject



8
9
10
# File 'lib/generators/develoz/api/api_generator.rb', line 8

def self.source_root
  File.expand_path("templates", __dir__)
end

Instance Method Details

#add_api_gemsObject



12
13
14
15
16
17
# File 'lib/generators/develoz/api/api_generator.rb', line 12

def add_api_gems
  add_gem "blueprinter"
  add_gem "rswag-api"
  add_gem "rswag-ui"
  add_gem "rswag-specs", group: %i[test]
end

#create_base_controllerObject



19
20
21
22
# File 'lib/generators/develoz/api/api_generator.rb', line 19

def create_base_controller
  template "app/controllers/api/v1/base_controller.rb.tt",
           "app/controllers/api/v1/base_controller.rb"
end

#create_blueprinter_initializerObject



24
25
26
27
# File 'lib/generators/develoz/api/api_generator.rb', line 24

def create_blueprinter_initializer
  template "config/initializers/blueprinter.rb.tt",
           "config/initializers/blueprinter.rb"
end

#create_example_blueprintObject



29
30
31
32
# File 'lib/generators/develoz/api/api_generator.rb', line 29

def create_example_blueprint
  template "app/blueprints/example_blueprint.rb.tt",
           "app/blueprints/example_blueprint.rb"
end

#create_example_request_specObject



49
50
51
52
# File 'lib/generators/develoz/api/api_generator.rb', line 49

def create_example_request_spec
  template "spec/requests/api/v1/examples_spec.rb.tt",
           "spec/requests/api/v1/examples_spec.rb"
end

#create_rswag_api_initializerObject



34
35
36
37
# File 'lib/generators/develoz/api/api_generator.rb', line 34

def create_rswag_api_initializer
  template "config/initializers/rswag_api.rb.tt",
           "config/initializers/rswag_api.rb"
end

#create_rswag_ui_initializerObject



39
40
41
42
# File 'lib/generators/develoz/api/api_generator.rb', line 39

def create_rswag_ui_initializer
  template "config/initializers/rswag_ui.rb.tt",
           "config/initializers/rswag_ui.rb"
end

#insert_rswag_routesObject



44
45
46
47
# File 'lib/generators/develoz/api/api_generator.rb', line 44

def insert_rswag_routes
  insert_route "mount Rswag::Ui::Engine => '/api-docs'"
  insert_route "mount Rswag::Api::Engine => '/api-docs'"
end