Class: MailDude::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/mail_dude/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



44
45
46
# File 'lib/generators/mail_dude/install_generator.rb', line 44

def self.next_migration_number(dirname)
  ActiveRecord::Generators::Base.next_migration_number(dirname)
end

Instance Method Details

#copy_initializerObject



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

def copy_initializer
  @storage = options[:database] ? ':database' : ':file'
  template 'initializer.tt', 'config/initializers/mail_dude.rb'
end

#copy_migrationObject



19
20
21
22
23
# File 'lib/generators/mail_dude/install_generator.rb', line 19

def copy_migration
  return unless options[:database]

  migration_template 'create_mail_dude_stored_emails.tt', 'db/migrate/create_mail_dude_stored_emails.rb'
end


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

def print_next_steps
  puts <<~TEXT

    Mount MailDude behind host app authentication and authorization:

      authenticate :user, lambda { |u| Ability.new(u).can?(:manage, MailDude::Dashboard) } do
        mount MailDude::Engine, at: "/mail_dude"
      end

    Configure Action Mailer in development or QA:

      config.action_mailer.delivery_method = :mail_dude
      config.action_mailer.perform_deliveries = true

    MailDude does not authenticate users itself. Do not expose /mail_dude publicly.
  TEXT
  puts 'Run bin/rails db:migrate before using database storage.' if options[:database]
end