active_delivery 0.4.2 → 0.4.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 +4 -4
- data/.gem_release.yml +3 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +24 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +24 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +23 -0
- data/.github/workflows/docs-lint.yml +72 -0
- data/.github/workflows/rspec-jruby.yml +35 -0
- data/.github/workflows/rspec.yml +51 -0
- data/.github/workflows/rubocop.yml +21 -0
- data/.gitignore +41 -8
- data/.mdlrc +1 -0
- data/.rspec +1 -1
- data/.rubocop-md.yml +16 -0
- data/CHANGELOG.md +7 -2
- data/Gemfile +7 -3
- data/README.md +14 -11
- data/RELEASING.md +43 -0
- data/Rakefile +13 -3
- data/forspell.dict +8 -0
- data/gemfiles/jruby.gemfile +5 -0
- data/gemfiles/rails5.gemfile +5 -0
- data/gemfiles/rails50.gemfile +8 -0
- data/gemfiles/rails6.gemfile +5 -0
- data/gemfiles/railsmaster.gemfile +4 -6
- data/gemfiles/rubocop.gemfile +4 -0
- data/lefthook.yml +18 -0
- data/lib/active_delivery/action_mailer/parameterized.rb +7 -1
- data/lib/active_delivery/lines/mailer.rb +1 -1
- data/lib/active_delivery/version.rb +1 -1
- metadata +20 -3
- data/.travis.yml +0 -31
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5798b0d549774cc32295198d1f1ebcd155c07e0624ff8260b427d437cd0ac465
|
|
4
|
+
data.tar.gz: '086acc7c7080f9170663353740d462acbd065d4eb105a23193aa9150bdb84327'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b74b9673fd219caec608b4a20cfc0cd94eb55df0b4a52b95edd799d5aea9552e0913c9861d06412494cd160fa7fd6f77c27bae603e60659bf58ad5adda9b71f0
|
|
7
|
+
data.tar.gz: 3a0e73e048db14768401cc0f1406ad0aaa09888ef2c18c739d15b2daaf0199375eee437b229e60b8aab7af38659d2bd815a7cd8402620618def7498a6d1373ac
|
data/.gem_release.yml
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: palkan
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## What did you do?
|
|
11
|
+
|
|
12
|
+
## What did you expect to happen?
|
|
13
|
+
|
|
14
|
+
## What actually happened?
|
|
15
|
+
|
|
16
|
+
## Additional context
|
|
17
|
+
|
|
18
|
+
## Environment
|
|
19
|
+
|
|
20
|
+
**Ruby Version:**
|
|
21
|
+
|
|
22
|
+
**Framework Version (Rails, whatever):**
|
|
23
|
+
|
|
24
|
+
**Active Delivery Version:**
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: ''
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: palkan
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Is your feature request related to a problem? Please describe.
|
|
11
|
+
|
|
12
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
13
|
+
|
|
14
|
+
## Describe the solution you'd like
|
|
15
|
+
|
|
16
|
+
A clear and concise description of what you want to happen.
|
|
17
|
+
|
|
18
|
+
## Describe alternatives you've considered
|
|
19
|
+
|
|
20
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
21
|
+
|
|
22
|
+
## Additional context
|
|
23
|
+
|
|
24
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
First of all, thanks for contributing!
|
|
3
|
+
|
|
4
|
+
If it's a typo fix or minor documentation update feel free to skip the rest of this template!
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
## What is the purpose of this pull request?
|
|
8
|
+
|
|
9
|
+
<!--
|
|
10
|
+
If it's a bug fix, then link it to the issue, for example:
|
|
11
|
+
|
|
12
|
+
Fixes #xxx
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
## What changes did you make? (overview)
|
|
16
|
+
|
|
17
|
+
## Is there anything you'd like reviewers to focus on?
|
|
18
|
+
|
|
19
|
+
## Checklist
|
|
20
|
+
|
|
21
|
+
- [ ] I've added tests for this change
|
|
22
|
+
- [ ] I've added a Changelog entry
|
|
23
|
+
- [ ] I've updated a documentation
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
name: Lint Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
paths:
|
|
8
|
+
- "*.md"
|
|
9
|
+
- "**/*.md"
|
|
10
|
+
pull_request:
|
|
11
|
+
paths:
|
|
12
|
+
- "*.md"
|
|
13
|
+
- "**/*.md"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
markdownlint:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@v2
|
|
20
|
+
- uses: ruby/setup-ruby@v1
|
|
21
|
+
with:
|
|
22
|
+
ruby-version: 2.7
|
|
23
|
+
- name: Run Markdown linter
|
|
24
|
+
run: |
|
|
25
|
+
gem install mdl
|
|
26
|
+
mdl *.md
|
|
27
|
+
rubocop:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@v2
|
|
31
|
+
- uses: ruby/setup-ruby@v1
|
|
32
|
+
with:
|
|
33
|
+
ruby-version: 2.7
|
|
34
|
+
- name: Lint Markdown files with RuboCop
|
|
35
|
+
run: |
|
|
36
|
+
gem install bundler
|
|
37
|
+
bundle install --gemfile gemfiles/rubocop.gemfile --jobs 4 --retry 3
|
|
38
|
+
bundle exec --gemfile gemfiles/rubocop.gemfile rubocop -c .rubocop-md.yml
|
|
39
|
+
forspell:
|
|
40
|
+
runs-on: ubuntu-latest
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/checkout@v2
|
|
43
|
+
- name: Install Hunspell
|
|
44
|
+
run: |
|
|
45
|
+
sudo apt-get install hunspell
|
|
46
|
+
- uses: ruby/setup-ruby@v1
|
|
47
|
+
with:
|
|
48
|
+
ruby-version: 2.7
|
|
49
|
+
- name: Cache installed gems
|
|
50
|
+
uses: actions/cache@v1
|
|
51
|
+
with:
|
|
52
|
+
path: /home/runner/.rubies/ruby-2.7.0/lib/ruby/gems/2.7.0
|
|
53
|
+
key: gems-cache-${{ runner.os }}
|
|
54
|
+
- name: Install Forspell
|
|
55
|
+
run: gem install forspell
|
|
56
|
+
- name: Run Forspell
|
|
57
|
+
run: forspell *.md .github/**/*.md
|
|
58
|
+
liche:
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
env:
|
|
61
|
+
GO111MODULE: on
|
|
62
|
+
steps:
|
|
63
|
+
- uses: actions/checkout@v2
|
|
64
|
+
- name: Set up Go
|
|
65
|
+
uses: actions/setup-go@v1
|
|
66
|
+
with:
|
|
67
|
+
go-version: 1.13.x
|
|
68
|
+
- name: Run liche
|
|
69
|
+
run: |
|
|
70
|
+
export PATH=$PATH:$(go env GOPATH)/bin
|
|
71
|
+
go get -u github.com/raviqqe/liche
|
|
72
|
+
liche README.md CHANGELOG.md
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: JRuby Build
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
rspec:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
env:
|
|
13
|
+
BUNDLE_JOBS: 4
|
|
14
|
+
BUNDLE_RETRY: 3
|
|
15
|
+
CI: true
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v2
|
|
18
|
+
- uses: actions/cache@v1
|
|
19
|
+
with:
|
|
20
|
+
path: /home/runner/bundle
|
|
21
|
+
key: bundle-${{ hashFiles('**/gemfiles/jruby.gemfile') }}-${{ hashFiles('**/*.gemspec') }}
|
|
22
|
+
restore-keys: |
|
|
23
|
+
bundle-
|
|
24
|
+
- uses: ruby/setup-ruby@v1
|
|
25
|
+
with:
|
|
26
|
+
ruby-version: jruby
|
|
27
|
+
- name: Bundle install
|
|
28
|
+
run: |
|
|
29
|
+
bundle config --global gemfile gemfiles/jruby.gemfile
|
|
30
|
+
bundle config path /home/runner/bundle
|
|
31
|
+
bundle install
|
|
32
|
+
bundle update
|
|
33
|
+
- name: Run RSpec
|
|
34
|
+
run: |
|
|
35
|
+
bundle exec rspec
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Build
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
rspec:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
env:
|
|
13
|
+
BUNDLE_JOBS: 4
|
|
14
|
+
BUNDLE_RETRY: 3
|
|
15
|
+
CI: true
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
ruby: ["2.7"]
|
|
20
|
+
gemfile: [
|
|
21
|
+
"gemfiles/rails6.gemfile"
|
|
22
|
+
]
|
|
23
|
+
include:
|
|
24
|
+
- ruby: "2.5"
|
|
25
|
+
gemfile: "gemfiles/rails42.gemfile"
|
|
26
|
+
- ruby: "2.6"
|
|
27
|
+
gemfile: "gemfiles/rails50.gemfile"
|
|
28
|
+
- ruby: "2.6"
|
|
29
|
+
gemfile: "gemfiles/rails5.gemfile"
|
|
30
|
+
- ruby: "2.7"
|
|
31
|
+
gemfile: "gemfiles/railsmaster.gemfile"
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v2
|
|
34
|
+
- uses: actions/cache@v1
|
|
35
|
+
with:
|
|
36
|
+
path: /home/runner/bundle
|
|
37
|
+
key: bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }}
|
|
38
|
+
restore-keys: |
|
|
39
|
+
bundle-${{ matrix.ruby }}-${{ matrix.gemfile }}-
|
|
40
|
+
- uses: ruby/setup-ruby@v1
|
|
41
|
+
with:
|
|
42
|
+
ruby-version: ${{ matrix.ruby }}
|
|
43
|
+
- name: Bundle install
|
|
44
|
+
run: |
|
|
45
|
+
bundle config path /home/runner/bundle
|
|
46
|
+
bundle config --global gemfile ${{ matrix.gemfile }}
|
|
47
|
+
bundle install
|
|
48
|
+
bundle update
|
|
49
|
+
- name: Run RSpec
|
|
50
|
+
run: |
|
|
51
|
+
bundle exec rspec
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Lint Ruby
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
rubocop:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v2
|
|
14
|
+
- uses: ruby/setup-ruby@v1
|
|
15
|
+
with:
|
|
16
|
+
ruby-version: 2.7
|
|
17
|
+
- name: Lint Ruby code with RuboCop
|
|
18
|
+
run: |
|
|
19
|
+
gem install bundler
|
|
20
|
+
bundle install --gemfile gemfiles/rubocop.gemfile --jobs 4 --retry 3
|
|
21
|
+
bundle exec --gemfile gemfiles/rubocop.gemfile rubocop
|
data/.gitignore
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
# Numerous always-ignore extensions
|
|
2
|
+
*.diff
|
|
3
|
+
*.err
|
|
4
|
+
*.orig
|
|
5
|
+
*.log
|
|
6
|
+
*.rej
|
|
7
|
+
*.swo
|
|
8
|
+
*.swp
|
|
9
|
+
*.vi
|
|
10
|
+
*~
|
|
11
|
+
*.sass-cache
|
|
12
|
+
*.iml
|
|
13
|
+
.idea/
|
|
14
|
+
|
|
15
|
+
# Sublime
|
|
16
|
+
*.sublime-project
|
|
17
|
+
*.sublime-workspace
|
|
18
|
+
|
|
19
|
+
# OS or Editor folders
|
|
20
|
+
.DS_Store
|
|
21
|
+
.cache
|
|
22
|
+
.project
|
|
23
|
+
.settings
|
|
24
|
+
.tmproj
|
|
25
|
+
Thumbs.db
|
|
26
|
+
|
|
27
|
+
.bundle/
|
|
28
|
+
log/*.log
|
|
29
|
+
pkg/
|
|
30
|
+
spec/dummy/db/*.sqlite3
|
|
31
|
+
spec/dummy/db/*.sqlite3-journal
|
|
32
|
+
spec/dummy/tmp/
|
|
33
|
+
|
|
9
34
|
Gemfile.lock
|
|
10
35
|
Gemfile.local
|
|
36
|
+
.rspec
|
|
37
|
+
.ruby-version
|
|
38
|
+
*.gem
|
|
39
|
+
|
|
40
|
+
tmp/
|
|
41
|
+
.rbnext/
|
|
42
|
+
|
|
43
|
+
gemfiles/*.lock
|
data/.mdlrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rules "~MD013", "~MD033", "~MD034", "~MD029", "~MD026", "~MD002"
|
data/.rspec
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
-f d
|
|
2
2
|
--color
|
data/.rubocop-md.yml
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
## master
|
|
4
4
|
|
|
5
|
+
## 0.4.3 (2020-08-21)
|
|
6
|
+
|
|
7
|
+
- Fix parameterized mailers support in Rails >= 5.0, <5.2 ([@dmitryzuev][])
|
|
8
|
+
|
|
5
9
|
## 0.4.2 (2020-04-28)
|
|
6
10
|
|
|
7
11
|
- Allow resolve mailer class with custom pattern ([@brovikov][])
|
|
@@ -14,7 +18,7 @@
|
|
|
14
18
|
|
|
15
19
|
- **Drop Ruby 2.4 support**. ([@palkan][])
|
|
16
20
|
|
|
17
|
-
- Allow passing keyword
|
|
21
|
+
- Allow passing keyword arguments to `notify`. ([@palkan][])
|
|
18
22
|
|
|
19
23
|
## 0.3.1 (2020-02-21)
|
|
20
24
|
|
|
@@ -47,4 +51,5 @@ Initial version.
|
|
|
47
51
|
[@palkan]: https://github.com/palkan
|
|
48
52
|
[@curpeng]: https://github.com/curpeng
|
|
49
53
|
[@iBublik]: https://github.com/ibublik
|
|
50
|
-
[@brovikov]: https://github.com/brovikov
|
|
54
|
+
[@brovikov]: https://github.com/brovikov
|
|
55
|
+
[@dmitryzuev]: https://github.com/dmitryzuev
|
data/Gemfile
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source 'https://rubygems.org'
|
|
4
|
+
|
|
5
|
+
gem 'pry-byebug', platform: :mri
|
|
2
6
|
|
|
3
7
|
gemspec
|
|
4
8
|
|
|
5
|
-
|
|
9
|
+
eval_gemfile "gemfiles/rubocop.gemfile"
|
|
6
10
|
|
|
7
|
-
local_gemfile = File.
|
|
11
|
+
local_gemfile = "#{File.dirname(__FILE__)}/Gemfile.local"
|
|
8
12
|
|
|
9
13
|
if File.exist?(local_gemfile)
|
|
10
14
|
eval(File.read(local_gemfile)) # rubocop:disable Security/Eval
|
data/README.md
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
[](https://badge.fury.io/rb/active_delivery)
|
|
2
|
-
|
|
2
|
+

|
|
3
|
+

|
|
3
4
|
|
|
4
5
|
# Active Delivery
|
|
5
6
|
|
|
@@ -11,7 +12,8 @@ Framework providing an entry point (single _interface_) for all types of notific
|
|
|
11
12
|
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>
|
|
12
13
|
|
|
13
14
|
Requirements:
|
|
14
|
-
|
|
15
|
+
|
|
16
|
+
- Ruby ~> 2.5
|
|
15
17
|
|
|
16
18
|
**NOTE**: although most of the examples in this readme are Rails-specific, this gem could be used without Rails/ActiveSupport.
|
|
17
19
|
|
|
@@ -28,7 +30,8 @@ Here comes _Active Delivery_.
|
|
|
28
30
|
In the simplest case when we have only mailers Active Delivery is just a wrapper for Mailer with (possibly) some additional logic provided (e.g., preventing emails to unsubscribed users).
|
|
29
31
|
|
|
30
32
|
Motivations behind Active Delivery:
|
|
31
|
-
|
|
33
|
+
|
|
34
|
+
- Organize notifications related logic:
|
|
32
35
|
|
|
33
36
|
```ruby
|
|
34
37
|
# Before
|
|
@@ -43,20 +46,20 @@ def after_some_action
|
|
|
43
46
|
end
|
|
44
47
|
```
|
|
45
48
|
|
|
46
|
-
-
|
|
49
|
+
- Better testability (see [Testing](#testing)).
|
|
47
50
|
|
|
48
51
|
## Installation
|
|
49
52
|
|
|
50
53
|
Add this line to your application's Gemfile:
|
|
51
54
|
|
|
52
55
|
```ruby
|
|
53
|
-
gem
|
|
56
|
+
gem "active_delivery"
|
|
54
57
|
```
|
|
55
58
|
|
|
56
59
|
And then execute:
|
|
57
60
|
|
|
58
61
|
```sh
|
|
59
|
-
|
|
62
|
+
bundle
|
|
60
63
|
```
|
|
61
64
|
|
|
62
65
|
## Usage
|
|
@@ -95,12 +98,12 @@ end
|
|
|
95
98
|
Delivery also supports _parameterized_ calling:
|
|
96
99
|
|
|
97
100
|
```ruby
|
|
98
|
-
|
|
101
|
+
PostsDelivery.with(user: user).notify(:published, post)
|
|
99
102
|
```
|
|
100
103
|
|
|
101
104
|
The parameters could be accessed through the `params` instance method (e.g., to implement guard-like logic).
|
|
102
105
|
|
|
103
|
-
**NOTE**: When params are presents the
|
|
106
|
+
**NOTE**: When params are presents the parameterized mailer is used, i.e.:
|
|
104
107
|
|
|
105
108
|
```ruby
|
|
106
109
|
PostsMailer.with(user: user).published(post)
|
|
@@ -157,14 +160,15 @@ Active Delivery provides an elegant way to test deliveries in your code (i.e., w
|
|
|
157
160
|
it "delivers notification" do
|
|
158
161
|
expect { subject }.to have_delivered_to(Community::EventsDelivery, :modified, event)
|
|
159
162
|
.with(profile: profile)
|
|
163
|
+
end
|
|
160
164
|
```
|
|
161
165
|
|
|
162
166
|
You can also use such RSpec features as [compound expectations](https://relishapp.com/rspec/rspec-expectations/docs/compound-expectations) and [composed matchers](https://relishapp.com/rspec/rspec-expectations/v/3-8/docs/composing-matchers):
|
|
163
167
|
|
|
164
168
|
```ruby
|
|
165
169
|
it "delivers to RSVPed members via .notify" do
|
|
166
|
-
expect { subject }
|
|
167
|
-
to have_delivered_to(Community::EventsDelivery, :canceled, an_instance_of(event)).with(
|
|
170
|
+
expect { subject }
|
|
171
|
+
.to have_delivered_to(Community::EventsDelivery, :canceled, an_instance_of(event)).with(
|
|
168
172
|
a_hash_including(profile: another_profile)
|
|
169
173
|
).and have_delivered_to(Community::EventsDelivery, :canceled, event).with(
|
|
170
174
|
profile: profile
|
|
@@ -234,7 +238,6 @@ we call `EventDelivery.notify(:message_arrived, "ping-pong!")`.
|
|
|
234
238
|
Line class has the following API:
|
|
235
239
|
|
|
236
240
|
```ruby
|
|
237
|
-
|
|
238
241
|
class PigeonLine < ActiveDelivery::Lines::Base
|
|
239
242
|
# This method is used to infer sender class
|
|
240
243
|
# `name` is the name of the delivery class
|
data/RELEASING.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# How to release a gem
|
|
2
|
+
|
|
3
|
+
This document describes a process of releasing a new version of a gem.
|
|
4
|
+
|
|
5
|
+
1. Bump version.
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
git commit -m "Bump 1.<x>.<y>"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
We're (kinda) using semantic versioning:
|
|
12
|
+
|
|
13
|
+
- Bugfixes should be released as fast as possible as patch versions.
|
|
14
|
+
- New features could be combined and released as minor or patch version upgrades (depending on the _size of the feature_—it's up to maintainers to decide).
|
|
15
|
+
- Breaking API changes should be avoided in minor and patch releases.
|
|
16
|
+
- Breaking dependencies changes (e.g., dropping older Ruby support) could be released in minor versions.
|
|
17
|
+
|
|
18
|
+
How to bump a version:
|
|
19
|
+
|
|
20
|
+
- Change the version number in `lib/active_delivery/version.rb` file.
|
|
21
|
+
- Update the changelog (add new heading with the version name and date).
|
|
22
|
+
- Update the installation documentation if necessary (e.g., during minor and major updates).
|
|
23
|
+
|
|
24
|
+
2. Push code to GitHub and make sure CI passes.
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
git push
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
3. Release a gem.
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
gem release -t
|
|
34
|
+
git push --tags
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
We use [gem-release](https://github.com/svenfuchs/gem-release) for publishing gems with a single command:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
gem release -t
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Don't forget to push tags and write release notes on GitHub (if necessary).
|
data/Rakefile
CHANGED
|
@@ -2,9 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
require "bundler/gem_tasks"
|
|
4
4
|
require "rspec/core/rake_task"
|
|
5
|
-
require "rubocop/rake_task"
|
|
6
5
|
|
|
7
|
-
RuboCop::RakeTask.new
|
|
8
6
|
RSpec::Core::RakeTask.new(:spec)
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
begin
|
|
9
|
+
require "rubocop/rake_task"
|
|
10
|
+
RuboCop::RakeTask.new
|
|
11
|
+
|
|
12
|
+
RuboCop::RakeTask.new("rubocop:md") do |task|
|
|
13
|
+
task.options << %w[-c .rubocop-md.yml]
|
|
14
|
+
end
|
|
15
|
+
rescue LoadError
|
|
16
|
+
task(:rubocop) {}
|
|
17
|
+
task("rubocop:md") {}
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
task default: %w[rubocop rubocop:md spec]
|
data/forspell.dict
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Format: one word per line. Empty lines and #-comments are supported too.
|
|
2
|
+
# If you want to add word with its forms, you can write 'word: example' (without quotes) on the line,
|
|
3
|
+
# where 'example' is existing word with the same possible forms (endings) as your word.
|
|
4
|
+
# Example: deduplicate: duplicate
|
|
5
|
+
assignees
|
|
6
|
+
matchers
|
|
7
|
+
palkan
|
|
8
|
+
testability
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
gem 'arel', github: 'rails/arel'
|
|
4
|
+
gem 'rails', github: 'rails/rails'
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
gem "rubocop", github: "rubocop-hq/rubocop"
|
|
7
|
-
|
|
8
|
-
gemspec path: ".."
|
|
6
|
+
gemspec path: '..'
|
data/lefthook.yml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
pre-commit:
|
|
2
|
+
commands:
|
|
3
|
+
mdl:
|
|
4
|
+
tags: style
|
|
5
|
+
glob: "**/*.md"
|
|
6
|
+
run: mdl {staged_files}
|
|
7
|
+
liche:
|
|
8
|
+
tags: links
|
|
9
|
+
glob: "docs/*.md"
|
|
10
|
+
run: liche -d docs/ -r docs/* && test {staged_files}
|
|
11
|
+
forspell:
|
|
12
|
+
tags: grammar
|
|
13
|
+
glob: "**/*.md"
|
|
14
|
+
run: forspell {staged_files}
|
|
15
|
+
rubocop:
|
|
16
|
+
tags: style
|
|
17
|
+
glob: "**/*.md"
|
|
18
|
+
run: BUNDLE_GEMFILE=gemfiles/rubocop.gemfile bundle exec rubocop {staged_files}
|
|
@@ -43,6 +43,8 @@ module ActionMailer
|
|
|
43
43
|
class MessageDelivery < ActionMailer::MessageDelivery # :nodoc:
|
|
44
44
|
def initialize(mailer_class, action, params, *args)
|
|
45
45
|
super(mailer_class, action, *args)
|
|
46
|
+
@mailer ||= mailer_class
|
|
47
|
+
@mail_method ||= action
|
|
46
48
|
@params = params
|
|
47
49
|
end
|
|
48
50
|
|
|
@@ -57,12 +59,16 @@ module ActionMailer
|
|
|
57
59
|
private
|
|
58
60
|
|
|
59
61
|
def processed_mailer
|
|
60
|
-
@processed_mailer ||= @mailer.send(
|
|
62
|
+
@processed_mailer ||= @mailer.send(*mailer_args).tap do |m|
|
|
61
63
|
m.params = @params
|
|
62
64
|
m.process @mail_method, *@args
|
|
63
65
|
end
|
|
64
66
|
end
|
|
65
67
|
|
|
68
|
+
def mailer_args
|
|
69
|
+
ActionMailer::VERSION::MAJOR < 5 ? [:new, nil, *@args] : [:new]
|
|
70
|
+
end
|
|
71
|
+
|
|
66
72
|
def enqueue_delivery(delivery_method, options = {})
|
|
67
73
|
if processed?
|
|
68
74
|
super
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: active_delivery
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vladimir Dementyev
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -73,20 +73,37 @@ executables: []
|
|
|
73
73
|
extensions: []
|
|
74
74
|
extra_rdoc_files: []
|
|
75
75
|
files:
|
|
76
|
+
- ".gem_release.yml"
|
|
77
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
|
78
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
|
79
|
+
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
80
|
+
- ".github/workflows/docs-lint.yml"
|
|
81
|
+
- ".github/workflows/rspec-jruby.yml"
|
|
82
|
+
- ".github/workflows/rspec.yml"
|
|
83
|
+
- ".github/workflows/rubocop.yml"
|
|
76
84
|
- ".gitignore"
|
|
85
|
+
- ".mdlrc"
|
|
77
86
|
- ".rspec"
|
|
87
|
+
- ".rubocop-md.yml"
|
|
78
88
|
- ".rubocop.yml"
|
|
79
|
-
- ".travis.yml"
|
|
80
89
|
- CHANGELOG.md
|
|
81
90
|
- Gemfile
|
|
82
91
|
- LICENSE.txt
|
|
83
92
|
- README.md
|
|
93
|
+
- RELEASING.md
|
|
84
94
|
- Rakefile
|
|
85
95
|
- active_delivery.gemspec
|
|
86
96
|
- bin/console
|
|
87
97
|
- bin/setup
|
|
98
|
+
- forspell.dict
|
|
99
|
+
- gemfiles/jruby.gemfile
|
|
88
100
|
- gemfiles/rails42.gemfile
|
|
101
|
+
- gemfiles/rails5.gemfile
|
|
102
|
+
- gemfiles/rails50.gemfile
|
|
103
|
+
- gemfiles/rails6.gemfile
|
|
89
104
|
- gemfiles/railsmaster.gemfile
|
|
105
|
+
- gemfiles/rubocop.gemfile
|
|
106
|
+
- lefthook.yml
|
|
90
107
|
- lib/active_delivery.rb
|
|
91
108
|
- lib/active_delivery/action_mailer/parameterized.rb
|
|
92
109
|
- lib/active_delivery/base.rb
|
data/.travis.yml
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
sudo: false
|
|
2
|
-
language: ruby
|
|
3
|
-
cache: bundler
|
|
4
|
-
|
|
5
|
-
notifications:
|
|
6
|
-
email: false
|
|
7
|
-
|
|
8
|
-
before_install:
|
|
9
|
-
- gem update --system
|
|
10
|
-
- gem install bundler -v '< 2'
|
|
11
|
-
|
|
12
|
-
matrix:
|
|
13
|
-
fast_finish: true
|
|
14
|
-
include:
|
|
15
|
-
- rvm: ruby-head
|
|
16
|
-
gemfile: gemfiles/railsmaster.gemfile
|
|
17
|
-
- rvm: 2.7
|
|
18
|
-
gemfile: Gemfile
|
|
19
|
-
- rvm: 2.6
|
|
20
|
-
gemfile: Gemfile
|
|
21
|
-
- rvm: 2.5
|
|
22
|
-
gemfile: Gemfile
|
|
23
|
-
- rvm: 2.5
|
|
24
|
-
gemfile: Gemfile
|
|
25
|
-
env:
|
|
26
|
-
- NO_RAILS=1
|
|
27
|
-
- rvm: 2.5
|
|
28
|
-
gemfile: gemfiles/rails42.gemfile
|
|
29
|
-
allow_failures:
|
|
30
|
-
- rvm: ruby-head
|
|
31
|
-
gemfile: gemfiles/railsmaster.gemfile
|