Class: Flame::DeviseGenerator
- Inherits:
-
Generators::Base
- Object
- Rails::Generators::Base
- Generators::Base
- Flame::DeviseGenerator
- Defined in:
- lib/flame/generators/devise_generator.rb
Constant Summary collapse
- APP_CONTROLLER =
<<~RUBY before_action :authenticate_user!, only: [:current] protect_from_forgery with: :exception, unless: :json_request? def current render json: current_user end private def json_request? request.format.json? end RUBY
- SESSION_CONTROLLER =
<<~RUBY class SessionsController < Devise::SessionsController respond_to :json private def respond_with(resource, _opts = {}) render json: resource end def respond_to_on_destroy head :no_content end end RUBY
Instance Method Summary collapse
- #add_timeoutable ⇒ Object
- #generate_session_controller ⇒ Object
- #insert_secret_key ⇒ Object
- #install ⇒ Object
- #modify_app_controller ⇒ Object
- #modify_session_route ⇒ Object
Methods inherited from Generators::Base
Instance Method Details
#add_timeoutable ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/flame/generators/devise_generator.rb', line 42 def add_timeoutable gsub_file( "app/models/user.rb", /^\s*devise\s*:[a-z_]+(?:,\s*:[a-z_]+)*\s*$/, " devise :database_authenticatable, :registerable, :timeoutable, timeout_in: 1.day" ) end |
#generate_session_controller ⇒ Object
50 51 52 53 54 55 |
# File 'lib/flame/generators/devise_generator.rb', line 50 def generate_session_controller create_file( "app/controllers/sessions_controller.rb", SESSION_CONTROLLER ) end |
#insert_secret_key ⇒ Object
80 81 82 83 84 85 86 |
# File 'lib/flame/generators/devise_generator.rb', line 80 def insert_secret_key inject_into_file( "config/initializers/devise.rb", " config.secret_key = Rails.application.credentials.secret_key_base\n", after: "Devise.setup do |config|\n" ) end |
#install ⇒ Object
37 38 39 40 |
# File 'lib/flame/generators/devise_generator.rb', line 37 def install generate("devise:install") generate("devise", "User") end |
#modify_app_controller ⇒ Object
72 73 74 75 76 77 78 |
# File 'lib/flame/generators/devise_generator.rb', line 72 def modify_app_controller inject_into_class( "app/controllers/application_controller.rb", "ApplicationController", APP_CONTROLLER ) end |
#modify_session_route ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/flame/generators/devise_generator.rb', line 57 def modify_session_route gsub_file( "config/routes.rb", /devise_for\s*:\s*users/, <<~RUBY devise_for :users, defaults: {format: :json}, controllers: {sessions: "sessions"} get "/users/current", to: "application#current", defaults: {format: :json} get "*path", to: "pages#index", constraints: ->(request) do !request.xhr? && request.format.html? end RUBY ) end |