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 +4 -4
 - data/CHANGELOG.md +12 -0
 - data/README.md +4 -3
 - data/app/mailers/heya/campaign_mailer.rb +9 -6
 - data/lib/generators/heya/campaign/campaign_generator.rb +10 -2
 - data/lib/generators/heya/campaign/templates/message.md.erb.tt +1 -1
 - data/lib/generators/heya/campaign/templates/message.text.erb.tt +1 -1
 - data/lib/heya/campaigns/base.rb +1 -1
 - data/lib/heya/engine.rb +12 -0
 - data/lib/heya/version.rb +1 -1
 - metadata +4 -10
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8640e8fc2f4d593d85d4417b2f149d0afda39a88ffa3881f5558988c5ddda694
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3e4c574c46b7fad452c6a0394fafbab5730e51d3927798c30a38284f8ae35f61
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 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 
     | 
    
         
             
            [](https://badge.fury.io/rb/heya)
         
     | 
| 
       4 
4 
     | 
    
         
             
            [](https://codeclimate.com/github/honeybadger-io/heya/maintainability)
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            [](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  
     | 
| 
      
 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 ||=  
     | 
| 
       52 
     | 
    
         
            -
                     
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                     
     | 
| 
       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 ||=  
     | 
| 
       66 
     | 
    
         
            -
                   
     | 
| 
      
 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 %>  
     | 
| 
      
 1 
     | 
    
         
            +
            This is the <%= @step.downcase %> message.
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            This is the <%= @step.downcase %>  
     | 
| 
      
 1 
     | 
    
         
            +
            This is the <%= @step.downcase %> message.
         
     | 
    
        data/lib/heya/campaigns/base.rb
    CHANGED
    
    
    
        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
    
    
    
        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. 
     | 
| 
      
 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:  
     | 
| 
      
 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 
     | 
    
         
            -
            -  
     | 
| 
      
 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. 
     | 
| 
      
 128 
     | 
    
         
            +
            rubygems_version: 3.4.10
         
     | 
| 
       135 
129 
     | 
    
         
             
            signing_key:
         
     | 
| 
       136 
130 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       137 
131 
     | 
    
         
             
            summary: "Heya \U0001F44B"
         
     |