From b7ba147e26563cc3cc8b50620528001a7b4dfe63 Mon Sep 17 00:00:00 2001 From: Hans Lemuet Date: Tue, 7 Oct 2025 22:33:59 +0200 Subject: [PATCH 1/2] Setup for config settings --- app/mailers/missive/application_mailer.rb | 3 ++- lib/missive.rb | 4 +++- test/dummy/config/initializers/missive.rb | 1 + test/integration/missive/config_test.rb | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 test/dummy/config/initializers/missive.rb create mode 100644 test/integration/missive/config_test.rb diff --git a/app/mailers/missive/application_mailer.rb b/app/mailers/missive/application_mailer.rb index eceade4..4335113 100644 --- a/app/mailers/missive/application_mailer.rb +++ b/app/mailers/missive/application_mailer.rb @@ -1,6 +1,7 @@ module Missive class ApplicationMailer < ActionMailer::Base - default from: "from@example.com" + default from: email_address_with_name(Missive.mailer_from_email, Missive.mailer_from_name) + layout "mailer" end end diff --git a/lib/missive.rb b/lib/missive.rb index a44e159..23b6b8d 100644 --- a/lib/missive.rb +++ b/lib/missive.rb @@ -2,5 +2,7 @@ require "missive/engine" module Missive - # Your code goes here... + # Configuration + mattr_accessor :mailer_from_email, default: "noreply@example.com" + mattr_accessor :mailer_from_name, default: "Missive" end diff --git a/test/dummy/config/initializers/missive.rb b/test/dummy/config/initializers/missive.rb new file mode 100644 index 0000000..563ba59 --- /dev/null +++ b/test/dummy/config/initializers/missive.rb @@ -0,0 +1 @@ +Missive.mailer_from_email = "dummy@example.com" diff --git a/test/integration/missive/config_test.rb b/test/integration/missive/config_test.rb new file mode 100644 index 0000000..897b857 --- /dev/null +++ b/test/integration/missive/config_test.rb @@ -0,0 +1,15 @@ +require "test_helper" + +module Missive + class ConfigTest < ActionDispatch::IntegrationTest + test "can define a setting in initializer" do + # This setting is defined in dummy app initializer + assert_equal "dummy@example.com", Missive.mailer_from_email + end + + test "can use a setting default value" do + # This setting is not defined in dummy app initializer + assert_equal "Missive", Missive.mailer_from_name + end + end +end From 29ccf308aac71e21c8085aad9ee7bbbdb460b6da Mon Sep 17 00:00:00 2001 From: Hans Lemuet Date: Mon, 13 Oct 2025 22:34:53 +0200 Subject: [PATCH 2/2] Add layout, base mailer, test stubs --- app/mailers/missive/base_mailer.rb | 4 ++++ app/views/layouts/missive/mailer.html.erb | 13 +++++++++++++ app/views/layouts/missive/mailer.text.erb | 1 + test/mailers/missive/base_mailer_test.rb | 9 +++++++++ .../mailers/previews/missive/base_mailer_preview.rb | 5 +++++ 5 files changed, 32 insertions(+) create mode 100644 app/mailers/missive/base_mailer.rb create mode 100644 app/views/layouts/missive/mailer.html.erb create mode 100644 app/views/layouts/missive/mailer.text.erb create mode 100644 test/mailers/missive/base_mailer_test.rb create mode 100644 test/mailers/previews/missive/base_mailer_preview.rb diff --git a/app/mailers/missive/base_mailer.rb b/app/mailers/missive/base_mailer.rb new file mode 100644 index 0000000..7717edb --- /dev/null +++ b/app/mailers/missive/base_mailer.rb @@ -0,0 +1,4 @@ +module Missive + class BaseMailer < ApplicationMailer + end +end diff --git a/app/views/layouts/missive/mailer.html.erb b/app/views/layouts/missive/mailer.html.erb new file mode 100644 index 0000000..3aac900 --- /dev/null +++ b/app/views/layouts/missive/mailer.html.erb @@ -0,0 +1,13 @@ + + + + + + + + + <%= yield %> + + diff --git a/app/views/layouts/missive/mailer.text.erb b/app/views/layouts/missive/mailer.text.erb new file mode 100644 index 0000000..37f0bdd --- /dev/null +++ b/app/views/layouts/missive/mailer.text.erb @@ -0,0 +1 @@ +<%= yield %> diff --git a/test/mailers/missive/base_mailer_test.rb b/test/mailers/missive/base_mailer_test.rb new file mode 100644 index 0000000..86bafa9 --- /dev/null +++ b/test/mailers/missive/base_mailer_test.rb @@ -0,0 +1,9 @@ +require "test_helper" + +module Missive + class BaseMailerTest < ActionMailer::TestCase + # test "the truth" do + # assert true + # end + end +end diff --git a/test/mailers/previews/missive/base_mailer_preview.rb b/test/mailers/previews/missive/base_mailer_preview.rb new file mode 100644 index 0000000..fe70ad4 --- /dev/null +++ b/test/mailers/previews/missive/base_mailer_preview.rb @@ -0,0 +1,5 @@ +module Missive + # Preview all emails at http://localhost:3000/rails/mailers/base_mailer + class BaseMailerPreview < ActionMailer::Preview + end +end