heya 0.8.0 → 0.10.0

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: e5bc3c99063f8cc2d2cef70f24a1ce8e659fdc4b6a3a496da71267178c0f77ea
4
- data.tar.gz: 3dfc3750b0540d268f407cf4d432ba4d41b5d9b029beedce8535070aff6b6557
3
+ metadata.gz: 8640e8fc2f4d593d85d4417b2f149d0afda39a88ffa3881f5558988c5ddda694
4
+ data.tar.gz: 3e4c574c46b7fad452c6a0394fafbab5730e51d3927798c30a38284f8ae35f61
5
5
  SHA512:
6
- metadata.gz: 8eb3375ab35ad3a9b59fbf2855dc5bba8ffed4af81ebcc7da9fbc8537821e398010dee43f0c453b179d268b28f399eea6e2eccaadbddb7949302770890423de1
7
- data.tar.gz: 4a1e02fe2b067b74e72bad34c996483f14d9c950d77cc1f3fd29d5404e3af3d1df26622b31b6ecf04ecd869809e9f22f2d078066010fe69fe7f0438111c1d73a
6
+ metadata.gz: 1a042f0c2280489b968c7882bcc1f850c95c67ab15cd0a2c90cc8adcacd55134628c75a2e2284eb24b2791f20ada01c4b6cd17b1d475d5a7970c9e96d06653ec
7
+ data.tar.gz: bef8ea2e36960de46f733eb12418b261a9241698d9d60f4b2277b34a2063b49f54a378f007643c54d49208f92c13612fd37310c2b71cebda720527c389a93608
data/CHANGELOG.md CHANGED
@@ -6,6 +6,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
 
7
7
  ## [Unreleased]
8
8
  ### Added
9
+ - Add lambda support for from, bcc, and reply_to campaign options (#233, @armiiller)
10
+
11
+ ### Fixed
12
+ - Fix a Rails startup bug when validating steps that use translations from locale
13
+ files. (#211)
14
+
15
+ ## [0.9.0] - 2023-10-06
16
+ ### Added
17
+ - Rails 7.1 support
18
+
19
+ ## [0.8.0] - 2023-03-28
20
+ ### Added
9
21
  - Add `:headers` mail option (#202, @montekaka)
10
22
 
11
23
  ### Fixed
data/README.md CHANGED
@@ -3,8 +3,6 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/heya.svg)](https://badge.fury.io/rb/heya)
4
4
  [![Maintainability](https://api.codeclimate.com/v1/badges/a6416e63ffc426715857/maintainability)](https://codeclimate.com/github/honeybadger-io/heya/maintainability)
5
5
 
6
- [![Twitter Follow](https://img.shields.io/twitter/follow/heyjoshwood?label=Follow%20Josh%20for%20dev%20updates&style=social)](https://mobile.twitter.com/heyjoshwood)
7
-
8
6
  Heya is a campaign mailer for Rails. Think of it like ActionMailer, but for timed email sequences. It can also perform other actions like sending a text message.
9
7
 
10
8
  ## Getting started
@@ -14,6 +12,9 @@ Getting started with Heya is easy:
14
12
  2. [Create a campaign](#creating-your-first-campaign)
15
13
  3. [Run the scheduler](#running-the-scheduler)
16
14
 
15
+ ### Prerequisites
16
+ Heya was built to work with PostgreSQL. Pull requests are welcome to support more databases.
17
+
17
18
  ### Installing the Heya gem
18
19
  1. Add this line to your application's Gemfile:
19
20
 
@@ -615,7 +616,7 @@ considering adding to Heya.
615
616
  2. `gem bump -v [version] -t -r`
616
617
  3. Update unreleased heading in [CHANGELOG.md](./CHANGELOG.md) (TODO: automate
617
618
  this in gem-release command)
618
- 4. `git push origin master --tags`
619
+ 4. `git push origin main --tags`
619
620
 
620
621
  ## License
621
622
  Heya is licensed under the [LGPL](./LICENSE).
@@ -12,8 +12,13 @@ module Heya
12
12
  step_name = step.name.underscore
13
13
 
14
14
  from = step.params.fetch("from")
15
+ from = from.call(user) if from.respond_to?(:call)
16
+
15
17
  bcc = step.params.fetch("bcc", nil)
18
+ bcc = bcc.call(user) if bcc.respond_to?(:call)
19
+
16
20
  reply_to = step.params.fetch("reply_to", nil)
21
+ reply_to = reply_to.call(user) if reply_to.respond_to?(:call)
17
22
 
18
23
  subject = step.params.fetch("subject") {
19
24
  I18n.t("#{campaign_name}.#{step_name}.subject", **attributes_for(user))
@@ -48,12 +53,10 @@ module Heya
48
53
  end
49
54
 
50
55
  def _prefixes
51
- @_prefixes_with_campaign_path ||= begin
52
- if params.is_a?(Hash) && (campaign_name = params[:step]&.campaign&.name&.underscore)
53
- super | ["heya/campaign_mailer/#{campaign_name}"]
54
- else
55
- super
56
- end
56
+ @_prefixes_with_campaign_path ||= if params.is_a?(Hash) && (campaign_name = params[:step]&.campaign&.name&.underscore)
57
+ super | ["heya/campaign_mailer/#{campaign_name}"]
58
+ else
59
+ super
57
60
  end
58
61
  end
59
62
 
@@ -62,8 +62,16 @@ class Heya::CampaignGenerator < Rails::Generators::NamedBase
62
62
  end
63
63
 
64
64
  def preview_path
65
- @preview_path ||= if ActionMailer::Base.preview_path.present?
66
- Pathname(ActionMailer::Base.preview_path).sub(Rails.root.to_s, ".")
65
+ @preview_path ||= begin
66
+ preview_path = if ActionMailer::Base.respond_to?(:preview_paths)
67
+ # Rails 7.1+
68
+ ActionMailer::Base.preview_paths.first
69
+ else
70
+ # Rails < 7.1
71
+ ActionMailer::Base.preview_path
72
+ end
73
+
74
+ Pathname(preview_path).sub(Rails.root.to_s, ".") if preview_path
67
75
  end
68
76
  end
69
77
  end
@@ -1 +1 @@
1
- This is the <%= @step.downcase %> messsage.
1
+ This is the <%= @step.downcase %> message.
@@ -1 +1 @@
1
- This is the <%= @step.downcase %> messsage.
1
+ This is the <%= @step.downcase %> message.
@@ -18,7 +18,7 @@ module Heya
18
18
  self.steps = []
19
19
  end
20
20
 
21
- delegate :name, :__segments, to: :class
21
+ delegate :name, to: :class
22
22
  alias_method :id, :name
23
23
 
24
24
  # Returns String GlobalID.
data/lib/heya/engine.rb CHANGED
@@ -11,6 +11,18 @@ module Heya
11
11
  end
12
12
 
13
13
  config.to_prepare do
14
+ # This runs the first time *before* Rails is initialized. Because
15
+ # campaigns depend on Rails initialization, we use the `after_initialize`
16
+ # hook when Rails first starts up, and then `to_prepare` when reloading
17
+ # in development. See https://github.com/honeybadger-io/heya/issues/211
18
+ if ::Rails.application.initialized?
19
+ Dir.glob(Rails.root + "app/campaigns/*.rb").each do |c|
20
+ require_dependency(c)
21
+ end
22
+ end
23
+ end
24
+
25
+ config.after_initialize do
14
26
  Dir.glob(Rails.root + "app/campaigns/*.rb").each do |c|
15
27
  require_dependency(c)
16
28
  end
data/lib/heya/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Heya
4
- VERSION = "0.8.0"
4
+ VERSION = "0.10.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heya
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Wood
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-28 00:00:00.000000000 Z
11
+ date: 2024-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -17,9 +17,6 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 5.2.3
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: 7.1.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +24,6 @@ dependencies:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: 5.2.3
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: 7.1.0
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: pg
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +108,7 @@ files:
114
108
  - lib/tasks/heya_tasks.rake
115
109
  homepage: https://github.com/honeybadger-io/heya
116
110
  licenses:
117
- - Prosperity Public License
111
+ - LGPL-3.0
118
112
  metadata: {}
119
113
  post_install_message: Upgrading from Heya < 0.4? See https://git.io/JtgmW
120
114
  rdoc_options: []
@@ -131,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
125
  - !ruby/object:Gem::Version
132
126
  version: '0'
133
127
  requirements: []
134
- rubygems_version: 3.1.6
128
+ rubygems_version: 3.4.10
135
129
  signing_key:
136
130
  specification_version: 4
137
131
  summary: "Heya \U0001F44B"