Class: Rockstart::DeviseGenerator
- Inherits:
-
BaseGenerator
- Object
- Rails::Generators::Base
- BaseGenerator
- Rockstart::DeviseGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/rockstart/devise/devise_generator.rb
Class Method Summary collapse
-
.next_migration_number(dirname) ⇒ Object
Implement the required interface for Rails::Generators::Migration.
Instance Method Summary collapse
- #add_devise_controllers ⇒ Object
- #add_namae_gem ⇒ Object
- #add_rspec_coverage ⇒ Object
- #add_testing_variables ⇒ Object
- #add_user_migration ⇒ Object
- #add_user_model ⇒ Object
- #generate_user_model ⇒ Object
- #inject_routes ⇒ Object
- #install_devise ⇒ Object
- #update_application_url_concerns ⇒ Object
Class Method Details
.next_migration_number(dirname) ⇒ Object
Implement the required interface for Rails::Generators::Migration.
9 10 11 12 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 9 def self.next_migration_number(dirname) next_migration_number = current_migration_number(dirname) + 1 ActiveRecord::Migration.next_migration_number(next_migration_number) end |
Instance Method Details
#add_devise_controllers ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 61 def add_devise_controllers return if [:skip_controllers] Bundler.with_clean_env do Dir.mktmpdir do |dir| generate_devise_controllers(dir) add_pundit_support(dir) if [:pundit] devise_controllers.each do |controller| copy_file File.join(dir, controller_path(controller)), controller_path(controller) end end end end |
#add_namae_gem ⇒ Object
36 37 38 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 36 def add_namae_gem gem "namae" end |
#add_rspec_coverage ⇒ Object
95 96 97 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 95 def add_rspec_coverage directory "spec" end |
#add_testing_variables ⇒ Object
103 104 105 106 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 103 def add_testing_variables append_file ".env.development", "DEVISE_MAILER_SENDER=devise-mailer@localhost\n" append_file ".env.test", "[email protected]\n" end |
#add_user_migration ⇒ Object
44 45 46 47 48 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 44 def add_user_migration return if [:skip_migration] migration_template "create_user_migration.rb.tt", "db/migrate/create_users.rb" end |
#add_user_model ⇒ Object
40 41 42 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 40 def add_user_model directory "models", "app/models" end |
#generate_user_model ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 75 def generate_user_model return if [:skip_model] Bundler.with_clean_env do generate "devise", "User" end end |
#inject_routes ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 83 def inject_routes return if [:skip_controllers] controller_templates = devise_controllers.map do |controller| " #{controller}: \"users/#{controller}\"" end.join(",\n") gsub_file "config/routes.rb", /devise_for :users.*$$/ do ["devise_for :users, controllers: {", controller_templates, " }"].join("\n") end end |
#install_devise ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 50 def install_devise gem "devise" bundle_install do Dir.mktmpdir do |dir| generate_devise_install(dir) directory File.join(dir, "config"), "config" end end end |
#update_application_url_concerns ⇒ Object
99 100 101 |
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 99 def update_application_url_concerns change_application_url("url_for_authentication", "new_user_session_path") end |