Skip to content

Commit 00eb437

Browse files
committed
Who needs ActionMailer anyway?
1 parent b75251b commit 00eb437

File tree

5 files changed

+15
-6
lines changed

5 files changed

+15
-6
lines changed

Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ gem "rake", "~> 13.0"
1010
gem "minitest", "~> 5.0"
1111

1212
gem "standard", "~> 1.3"
13+
14+
gem "actionmailer", ">= 7.0"

Gemfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ PATH
22
remote: .
33
specs:
44
solid_errors (0.6.1)
5-
actionmailer (>= 7.0)
65
actionpack (>= 7.0)
76
actionview (>= 7.0)
87
activerecord (>= 7.0)
@@ -63,7 +62,7 @@ GEM
6362
concurrent-ruby (1.3.4)
6463
connection_pool (2.4.1)
6564
crass (1.0.6)
66-
date (3.3.4)
65+
date (3.4.1)
6766
drb (2.2.1)
6867
erubi (1.13.0)
6968
globalid (1.2.1)
@@ -88,14 +87,14 @@ GEM
8887
net-smtp
8988
mini_mime (1.1.5)
9089
minitest (5.25.1)
91-
net-imap (0.4.14)
90+
net-imap (0.5.6)
9291
date
9392
net-protocol
9493
net-pop (0.1.2)
9594
net-protocol
9695
net-protocol (0.2.2)
9796
timeout
98-
net-smtp (0.5.0)
97+
net-smtp (0.5.1)
9998
net-protocol
10099
nokogiri (1.16.7-arm64-darwin)
101100
racc (~> 1.4)
@@ -188,6 +187,7 @@ PLATFORMS
188187
x86_64-linux
189188

190189
DEPENDENCIES
190+
actionmailer (>= 7.0)
191191
minitest (~> 5.0)
192192
rake (~> 13.0)
193193
solid_errors!

app/mailers/solid_errors/error_mailer.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
module SolidErrors
22
# adapted from: https://github.com/codergeek121/email_error_reporter/blob/main/lib/email_error_reporter/error_mailer.rb
3-
class ErrorMailer < ActionMailer::Base
3+
class ErrorMailer < (defined?(ActionMailer::Base) ? ActionMailer::Base : Object)
44
def error_occurred(occurrence)
5+
unless defined?(ActionMailer::Base)
6+
raise "ActionMailer is not available. Make sure that you require \"action_mailer/railtie\" in application.rb"
7+
end
58
@occurrence = occurrence
69
@error = occurrence.error
710
subject = "#{@error.severity_emoji} #{@error.exception_class}"

lib/solid_errors/engine.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ class Engine < ::Rails::Engine
1010
config.solid_errors.each do |name, value|
1111
SolidErrors.public_send(:"#{name}=", value)
1212
end
13+
14+
if SolidErrors.send_emails? && !defined?(ActionMailer)
15+
raise "You have configured solid_errors.send_emails = true but ActionMailer is not available." \
16+
"Make sure that you require \"action_mailer/railtie\" in application.rb or set solid_errors.send_emails = false."
17+
end
1318
end
1419

1520
initializer "solid_errors.active_record.error_subscriber" do

solid_errors.gemspec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
2121
end
2222

2323
">= 7.0".tap do |rails_version|
24-
spec.add_dependency "actionmailer", rails_version
2524
spec.add_dependency "actionpack", rails_version
2625
spec.add_dependency "actionview", rails_version
2726
spec.add_dependency "activerecord", rails_version

0 commit comments

Comments
 (0)