Class: DeviseRemote::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#add_authenticationObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/generators/devise_remote/install_generator.rb', line 22

def add_authentication
  controller_path = 'app/controllers/application_controller.rb'
  if File.exist?(controller_path)
    inject_into_file controller_path, after: "class ApplicationController < ActionController::Base\n" do
      "\t# Added by DeviseRemote to authenticate all incoming requests\n"
      "\tbefore_action :authenticate_user!\n"
    end
  else
    say_status 'warning', "      ApplicationController not found.\n      ===============================================================================\n        You will need to add the following to one of your controllers:\n\n          before_action :authenticate_user!\n\n        See the Devise's README for more information.\n      ===============================================================================\n    TEXT\n  end\nend\n".strip_heredoc, :yellow

#add_initializerObject



18
19
20
# File 'lib/generators/devise_remote/install_generator.rb', line 18

def add_initializer
  template 'devise_remote.erb', 'config/initializers/devise_remote.rb'
end

#add_login_to_deviseObject



14
15
16
# File 'lib/generators/devise_remote/install_generator.rb', line 14

def 
  invoke 'devise_remote:login_migration', [name]
end

#add_routesObject



51
52
53
54
55
# File 'lib/generators/devise_remote/install_generator.rb', line 51

def add_routes
  inject_into_file 'config/routes.rb', after: 'Rails.application.routes.draw do' do
    "\n\tmount DeviseRemote::Engine => '/devise_remote'\n"
  end
end

#generate_modelObject



10
11
12
# File 'lib/generators/devise_remote/install_generator.rb', line 10

def generate_model
  invoke 'devise', [name]
end

#install_deviseObject



6
7
8
# File 'lib/generators/devise_remote/install_generator.rb', line 6

def install_devise
  invoke 'devise:install'
end

#update_modelObject



43
44
45
46
47
48
49
# File 'lib/generators/devise_remote/install_generator.rb', line 43

def update_model
  model_path = "app/models/#{name.downcase}.rb"
  comment_lines model_path, /able/
  inject_into_file model_path, after: 'class User < ApplicationRecord' do
    "\n\tdevise :http_header_authenticatable\n"
  end
end