Class: Trek::Generators::Install::PostmarkGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Helpers
Defined in:
lib/generators/trek/install/postmark_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_gemObject



15
16
17
18
# File 'lib/generators/trek/install/postmark_generator.rb', line 15

def add_gem
  gem "postmark-rails" unless in_gemfile?("postmark-rails")
  run "bundle install --quiet", abort_on_failure: true
end

#inject_postmark_to_application_mailerObject



20
21
22
23
24
25
26
# File 'lib/generators/trek/install/postmark_generator.rb', line 20

def inject_postmark_to_application_mailer
  inject_into_class "app/mailers/application_mailer.rb",
    "ApplicationMailer",
    application_mailer_injection,
    after: '  layout "mailer"\n'
  run "rubocop --autocorrect app/mailers/application_mailer.rb", abort_on_failure: true
end

#inject_postmark_to_configObject



28
29
30
31
32
33
# File 'lib/generators/trek/install/postmark_generator.rb', line 28

def inject_postmark_to_config
  inject_into_file "config/environments/production.rb",
    config_injection,
    after: "# Specify outgoing SMTP server. Remember to add smtp/* credentials via bin/rails credentials:edit.\n"
  run "rubocop --autocorrect config/environments/production.rb", abort_on_failure: true
end

#inject_postmark_to_credentialsObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/generators/trek/install/postmark_generator.rb', line 35

def inject_postmark_to_credentials
  return if credentials_encrypted_file.read&.include?("postmark:")

  inject_into_credentials(
    <<~YAML
      postmark:
        api_token: #{ENV.fetch("POSTMARK_API_TOKEN", "")}
    YAML
  )
end