require 'rails/generators/base' # Je me suis servi de : # - la documentation des generators # https://guides.rubyonrails.org/generators.html # - Depuis Rails 3.0, la gem Thor permet de manipuler facilement des fichiers, dont create_file et inject_into_file # https://github.com/erikhuda/thor # https://www.rubydoc.info/github/wycats/thor/master/Thor/Actions/InjectIntoFile module DeviseTokenAuthenticatable class InitializerGenerator < Rails::Generators::Base desc "This generator initializes devise_token_authenticatable's gem configs" ## Déclaration des constantes SESSIONS_COMMENT_LINE = "# SessionsController generated by devise_token_authenticatable\n\n" REGISTRATIONS_COMMENT_LINE = "# RegistrationsController generated by devise_token_authenticatable\n\n" ## Initialisation SessionsController def create_sessions_controller # Possible de le faire en une seule ligne avec un create_file(file, content) # J'ai utilisé deux lignes pour la PR pour utiliser les fonctions de Thor create_file 'app/controllers/users/sessions_controller.rb', InitializerGenerator::SESSIONS_COMMENT_LINE inject_into_file "app/controllers/users/sessions_controller.rb", write_sessions_controller, after: InitializerGenerator::SESSIONS_COMMENT_LINE end def write_sessions_controller <