Class: Rockstart::DeviseGenerator

Inherits:
BaseGenerator
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/rockstart/devise/devise_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

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_controllersObject



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 options[:skip_controllers]

  Bundler.with_clean_env do
    Dir.mktmpdir do |dir|
      generate_devise_controllers(dir)
      add_pundit_support(dir) if options[:pundit]
      devise_controllers.each do |controller|
        copy_file File.join(dir, controller_path(controller)), controller_path(controller)
      end
    end
  end
end

#add_namae_gemObject



36
37
38
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 36

def add_namae_gem
  gem "namae"
end

#add_rspec_coverageObject



95
96
97
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 95

def add_rspec_coverage
  directory "spec"
end

#add_testing_variablesObject



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_migrationObject



44
45
46
47
48
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 44

def add_user_migration
  return if options[:skip_migration]

  migration_template "create_user_migration.rb.tt", "db/migrate/create_users.rb"
end

#add_user_modelObject



40
41
42
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 40

def add_user_model
  directory "models", "app/models"
end

#generate_user_modelObject



75
76
77
78
79
80
81
# File 'lib/generators/rockstart/devise/devise_generator.rb', line 75

def generate_user_model
  return if options[:skip_model]

  Bundler.with_clean_env do
    generate "devise", "User"
  end
end

#inject_routesObject



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 options[: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_deviseObject



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_concernsObject



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