Module: Stationed::Generators::Plugins::Devise

Included in:
AppGenerator
Defined in:
lib/stationed/generators/plugins/devise.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



5
6
7
8
9
10
# File 'lib/stationed/generators/plugins/devise.rb', line 5

def self.prepended(base)
  base.class_option :devise,
    type: :boolean,
    default: true,
    desc: 'Set up authentication with Devise'
end

Instance Method Details

#finish_templateObject



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/stationed/generators/plugins/devise.rb', line 12

def finish_template
  return super unless options[:devise]
  gem 'devise'
  copy_file 'devise.rb', 'spec/support/devise.rb' if options[:rspec]
  route "devise_scope :user do\n    root to: 'devise/sessions#new'\n  end\n"
  environment nil, env: :test do
    "# Set default url options for Devise mailers\n  config.action_mailer.default_url_options = { host: 'example.com' }\n"
  end
  environment nil, env: :development do
    "# Set default url options for Devise mailers\n  config.action_mailer.default_url_options = { host: 'localhost:3000' }\n"
  end
  super
end

#run_bundleObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/stationed/generators/plugins/devise.rb', line 26

def run_bundle
  super
  return unless options[:devise]
  generate 'devise:install'
  generate 'devise user'
  return unless options[:pundit]
  application do
    <<-RUBY
# Let Pundit authorization or custom responders not influence the workings
    # of Devise.
    config.to_prepare do
      [
Devise::SessionsController,
Devise::RegistrationsController,
Devise::PasswordsController
      ].each do |devise_controller_class|
devise_controller_class.skip_after_action :verify_authorized
devise_controller_class.skip_after_action :verify_policy_scoped
devise_controller_class.responder = ActionController::Responder
      end
    end
    RUBY
  end
end