class HappySeed::Generators::DeviseGenerator
Public Class Methods
fingerprint()
click to toggle source
# File lib/generators/happy_seed/devise/devise_generator.rb, line 10 def self.fingerprint gem_available? 'devise' end
Public Instance Methods
install_devise()
click to toggle source
# File lib/generators/happy_seed/devise/devise_generator.rb, line 14 def install_devise return if already_installed require_generator BootstrapGenerator require_generator HtmlEmailGenerator gem 'devise', '~> 4.2' Bundler.with_clean_env do run "bundle install --without production" end run 'bin/spring stop' Bundler.with_clean_env do run 'rails generate devise:install' run 'rails generate devise User' run 'rails generate devise:views' end if gem_available?( "haml-rails" ) remove_file 'app/views/devise/registrations/new.html.erb' remove_file 'app/views/devise/registrations/edit.html.erb' remove_file 'app/views/devise/sessions/new.html.erb' remove_file 'app/views/devise/passwords/edit.html.erb' remove_file 'app/views/devise/passwords/new.html.erb' end remove_file 'app/views/devise/mailer/reset_password_instructions.html.erb' remove_file 'app/views/devise/mailer/confirmation_instructions.html.erb' remove_file "spec/factories/users.rb" begin prepend_to_file 'spec/spec_helper.rb', "require 'devise'\n" rescue say_status :spec, "Unable to add devise helpers to spec_helper.rb", :red end directory 'app' directory 'docs' # directory 'test' directory 'spec' application(nil, env: "development") do "config.action_mailer.default_url_options = { host: 'localhost:3000' }" end application(nil, env: "test") do "config.action_mailer.default_url_options = { host: 'localhost:3000' }" end if File.exists?( File.join( destination_root, 'app/views/application/_header.html.haml' ) ) gsub_file 'app/views/application/_header.html.haml', "/ USER NAV", '= render partial: "application/account_dropdown"' else say_status :gsub_file, "Can't find application/_header.html.haml, skipping" end gsub_file "config/initializers/devise.rb", "# config.parent_mailer = 'ActionMailer::Base'", "config.parent_mailer = 'ApplicationMailer'" gsub_file 'config/routes.rb', "devise_for :users", "devise_for :users, :controllers => { }" end
Private Instance Methods
gem_available?(name)
click to toggle source
# File lib/generators/happy_seed/devise/devise_generator.rb, line 78 def gem_available?(name) Gem::Specification.find_by_name(name) rescue Gem::LoadError false rescue Gem.available?(name) end