effective_messaging 0.12.2 → 0.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5dfef87c558f89f328d45a668ca1468ea160e8c47bc5d3405b86a36dff675ad3
4
- data.tar.gz: 9c423f0121fbae96f7171ace280df5d71e54e8095e165deaad3bf54c4435c4cd
3
+ metadata.gz: 7122fe35acd896e24f84b7fd65ba9514fb9a1dff0de6e50f0ac5af6d507f643b
4
+ data.tar.gz: a997df0342bbd6fa50f0ec0e87911f8518d00e5538d2f69f3686bba3c1e15923
5
5
  SHA512:
6
- metadata.gz: 14981ca7fbb6044a6d8ea3ff8fa31c076ce50e3839965b4ae1006ba3852e568298206072bf43c5b7fcad4879c0159d6931d419db03f65a57e6b876cb6eb782c9
7
- data.tar.gz: a9cad6965a4f9c51b649cf0c6c1fe2609cab3c1546ccdc642aa0e38c514d802f944dab17d4b4707d802a81a900b0573a2083fa17c24e9ab7281e0a597a2548ee
6
+ metadata.gz: 84bd8c6a88b84dccd311c582a52648d1b2c0763e7575ef558274dd94d28ba5c56e4cae26eaa9e23cb0527e5c33af6035e691ced6d6184cae9ef35ff4b6228050
7
+ data.tar.gz: d6091da483e055c52b6f5fb60fa4b76b31759e986d90af906b8a43624129bc4067ccb2fc533fef2c4aaa34411588c9d2fe3b0f83fb9778d24e6788350d9df17a
@@ -257,7 +257,7 @@ module Effective
257
257
 
258
258
  if audience_emails?
259
259
  # notify_by_schedule
260
- Effective::NotificationsMailer.notification(self, nil, email_notification_params)
260
+ Effective::NotificationsMailer.notification(self, nil, email_notification_params)
261
261
  else
262
262
  # notify_by_resources
263
263
  resource = report.collection.order('RANDOM()').first
@@ -275,6 +275,9 @@ module Effective
275
275
  # Send Now functionality. Don't duplicate if it's same day.
276
276
  next if already_notified_today?(resource) && !force
277
277
 
278
+ # Don't send to users with a known email delivery error (e.g. a Postmark hard bounce or suppression)
279
+ next if email_delivery_error?(resource) && !force
280
+
278
281
  print('.')
279
282
 
280
283
  begin
@@ -394,11 +397,11 @@ module Effective
394
397
  # 1. The report.report_columns
395
398
  # 2. The class's def reportable_view_assigns(view) method
396
399
  def assigns_for(resource = nil)
397
- return {} unless report.present?
400
+ return {} unless report.present?
398
401
 
399
402
  resource ||= report.reportable.new
400
403
  raise('expected an acts_as_reportable resource') unless resource.class.try(:acts_as_reportable?)
401
-
404
+
402
405
  report_assigns = Array(report.report_columns).inject({}) do |h, column|
403
406
  value = resource.send(column.name)
404
407
  h[column.name] = column.format(value); h
@@ -437,6 +440,13 @@ module Effective
437
440
  emails.presence&.join(', ')
438
441
  end
439
442
 
443
+ # True when the resource's emailable has a known email delivery error (set by effective_postmark)
444
+ # so we skip sending to avoid Postmark inactive recipient errors
445
+ def email_delivery_error?(resource)
446
+ emailable = resource_emailable(resource)
447
+ emailable.respond_to?(:email_delivery_error) && emailable.email_delivery_error.present?
448
+ end
449
+
440
450
  # A user, owner, or organization column
441
451
  def resource_emailable(resource)
442
452
  return unless resource.present?
@@ -1,3 +1,3 @@
1
1
  module EffectiveMessaging
2
- VERSION = '0.12.2'.freeze
2
+ VERSION = '0.12.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_messaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.2
4
+ version: 0.12.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-06 00:00:00.000000000 Z
11
+ date: 2026-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails