active_delivery 0.3.1 → 0.4.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/.rubocop.yml +1 -4
- data/.travis.yml +6 -6
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/README.md +4 -4
- data/active_delivery.gemspec +12 -12
- data/lib/active_delivery/base.rb +8 -8
- data/lib/active_delivery/callbacks.rb +13 -13
- data/lib/active_delivery/lines/base.rb +5 -5
- data/lib/active_delivery/lines/mailer.rb +12 -4
- data/lib/active_delivery/version.rb +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb5ab8a6ec56fff50826ab85c266e3feb22f621495b7004b52b3e57230f4cf22
|
4
|
+
data.tar.gz: 18cd0ec87390d72dfc358988f53d801f2bb7175c5fda373243705518bf66c7d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a154c82c76c588059e7c41a725c58118b9e9e5c59b5695846505f880e830d59ff27e8db90ef661b3a1a98739e62f0baba4efb48d4a453e2d1fe46b0f1358325
|
7
|
+
data.tar.gz: 5cab3665df3ee06eb878a9e78f15f754ef48ce3b2f71c5e9c14711215ffa584e8ecf3c18b84cfd03cdb00ece0e89da86ed4c812712e2f30f320d9a2ae70417ef
|
data/.rubocop.yml
CHANGED
@@ -13,7 +13,7 @@ AllCops:
|
|
13
13
|
- 'vendor/**/*'
|
14
14
|
- 'gemfiles/**/*'
|
15
15
|
DisplayCopNames: true
|
16
|
-
TargetRubyVersion: 2.
|
16
|
+
TargetRubyVersion: 2.5
|
17
17
|
|
18
18
|
Standard/SemanticBlocks:
|
19
19
|
Enabled: false
|
@@ -26,6 +26,3 @@ Style/TrailingCommaInArrayLiteral:
|
|
26
26
|
|
27
27
|
Style/TrailingCommaInHashLiteral:
|
28
28
|
EnforcedStyleForMultiline: no_comma
|
29
|
-
|
30
|
-
Layout/AlignParameters:
|
31
|
-
EnforcedStyle: with_first_parameter
|
data/.travis.yml
CHANGED
@@ -14,17 +14,17 @@ matrix:
|
|
14
14
|
include:
|
15
15
|
- rvm: ruby-head
|
16
16
|
gemfile: gemfiles/railsmaster.gemfile
|
17
|
-
- rvm: 2.
|
17
|
+
- rvm: 2.7
|
18
18
|
gemfile: Gemfile
|
19
|
-
- rvm: 2.6
|
19
|
+
- rvm: 2.6
|
20
20
|
gemfile: Gemfile
|
21
|
-
- rvm: 2.5
|
21
|
+
- rvm: 2.5
|
22
|
+
gemfile: Gemfile
|
23
|
+
- rvm: 2.5
|
22
24
|
gemfile: Gemfile
|
23
25
|
env:
|
24
26
|
- NO_RAILS=1
|
25
|
-
- rvm: 2.
|
26
|
-
gemfile: Gemfile
|
27
|
-
- rvm: 2.4.3
|
27
|
+
- rvm: 2.5
|
28
28
|
gemfile: gemfiles/rails42.gemfile
|
29
29
|
allow_failures:
|
30
30
|
- rvm: ruby-head
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -243,17 +243,17 @@ class PigeonLine < ActiveDelivery::Lines::Base
|
|
243
243
|
# Called when we want to send message synchronously
|
244
244
|
# `sender` here either `sender_class` or `sender_class.with(params)`
|
245
245
|
# if params passed.
|
246
|
-
def notify_now(sender, delivery_action, *args)
|
246
|
+
def notify_now(sender, delivery_action, *args, **kwargs)
|
247
247
|
# For example, our EventPigeon class returns some `Pigeon` object
|
248
|
-
pigeon = sender.public_send(delivery_action, *args)
|
248
|
+
pigeon = sender.public_send(delivery_action, *args, **kwargs)
|
249
249
|
# PigeonLaunchService do all the sending job
|
250
250
|
PigeonService.launch pigeon
|
251
251
|
end
|
252
252
|
|
253
253
|
# Called when we want to send a message asynchronously.
|
254
254
|
# For example, you can use a background job here.
|
255
|
-
def notify_later(sender, delivery_action, *args)
|
256
|
-
pigeon = sender.public_send(delivery_action, *args)
|
255
|
+
def notify_later(sender, delivery_action, *args, **kwargs)
|
256
|
+
pigeon = sender.public_send(delivery_action, *args, **kwargs)
|
257
257
|
# PigeonLaunchService do all the sending job
|
258
258
|
PigeonLaunchJob.perform_later pigeon
|
259
259
|
end
|
data/active_delivery.gemspec
CHANGED
@@ -5,17 +5,17 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require "active_delivery/version"
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name
|
9
|
-
spec.version
|
10
|
-
spec.authors
|
11
|
-
spec.email
|
8
|
+
spec.name = "active_delivery"
|
9
|
+
spec.version = ActiveDelivery::VERSION
|
10
|
+
spec.authors = ["Vladimir Dementyev"]
|
11
|
+
spec.email = ["dementiev.vm@gmail.com"]
|
12
12
|
|
13
|
-
spec.summary
|
14
|
-
spec.description
|
15
|
-
spec.homepage
|
16
|
-
spec.license
|
13
|
+
spec.summary = "Rails framework for managing all types of notifications in one place"
|
14
|
+
spec.description = "Rails framework for managing all types of notifications in one place"
|
15
|
+
spec.homepage = "https://github.com/palkan/active_delivery"
|
16
|
+
spec.license = "MIT"
|
17
17
|
|
18
|
-
spec.required_ruby_version = ">= 2.
|
18
|
+
spec.required_ruby_version = ">= 2.5"
|
19
19
|
|
20
20
|
spec.metadata = {
|
21
21
|
"bug_tracker_uri" => "http://github.com/palkan/active_delivery/issues",
|
@@ -25,11 +25,11 @@ Gem::Specification.new do |spec|
|
|
25
25
|
"source_code_uri" => "http://github.com/palkan/active_delivery"
|
26
26
|
}
|
27
27
|
|
28
|
-
spec.files
|
28
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
|
31
31
|
spec.add_development_dependency "bundler", ">= 1.16"
|
32
|
-
spec.add_development_dependency "rake", "~>
|
32
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
33
33
|
spec.add_development_dependency "rspec", "~> 3.0"
|
34
|
-
spec.add_development_dependency "standard", "~> 0.0
|
34
|
+
spec.add_development_dependency "standard", "~> 0.2.0"
|
35
35
|
end
|
data/lib/active_delivery/base.rb
CHANGED
@@ -37,8 +37,8 @@ module ActiveDelivery
|
|
37
37
|
alias with new
|
38
38
|
|
39
39
|
# Enqueues delivery (i.e. uses #deliver_later for mailers)
|
40
|
-
def notify(*args)
|
41
|
-
new.notify(*args)
|
40
|
+
def notify(*args, **kwargs)
|
41
|
+
new.notify(*args, **kwargs)
|
42
42
|
end
|
43
43
|
|
44
44
|
# The same as .notify but delivers synchronously
|
@@ -86,9 +86,9 @@ module ActiveDelivery
|
|
86
86
|
end
|
87
87
|
|
88
88
|
# Enqueues delivery (i.e. uses #deliver_later for mailers)
|
89
|
-
def notify(mid, *args)
|
89
|
+
def notify(mid, *args, **kwargs)
|
90
90
|
@notification_name = mid
|
91
|
-
do_notify(*args)
|
91
|
+
do_notify(*args, **kwargs)
|
92
92
|
end
|
93
93
|
|
94
94
|
# The same as .notify but delivers synchronously
|
@@ -99,17 +99,17 @@ module ActiveDelivery
|
|
99
99
|
|
100
100
|
private
|
101
101
|
|
102
|
-
def do_notify(*args, sync: false)
|
102
|
+
def do_notify(*args, sync: false, **kwargs)
|
103
103
|
delivery_lines.each do |type, line|
|
104
104
|
next if line.handler_class.nil?
|
105
105
|
next unless line.notify?(notification_name)
|
106
106
|
|
107
|
-
notify_line(type, *args, params: params, sync: sync)
|
107
|
+
notify_line(type, *args, params: params, sync: sync, **kwargs)
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
-
def notify_line(type, *args)
|
112
|
-
delivery_lines[type].notify(notification_name, *args)
|
111
|
+
def notify_line(type, *args, **kwargs)
|
112
|
+
delivery_lines[type].notify(notification_name, *args, **kwargs)
|
113
113
|
end
|
114
114
|
|
115
115
|
def delivery_lines
|
@@ -41,17 +41,17 @@ module ActiveDelivery
|
|
41
41
|
end
|
42
42
|
|
43
43
|
module InstanceExt
|
44
|
-
def do_notify(*)
|
45
|
-
run_callbacks(:notify) { super }
|
44
|
+
def do_notify(*args, **kwargs)
|
45
|
+
run_callbacks(:notify) { super(*args, **kwargs) }
|
46
46
|
end
|
47
47
|
|
48
|
-
def notify_line(
|
49
|
-
run_callbacks(
|
48
|
+
def notify_line(*args, **kwargs)
|
49
|
+
run_callbacks(args.first) { super(*args, **kwargs) }
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
53
|
module SingltonExt
|
54
|
-
def register_line(line_id, *args)
|
54
|
+
def register_line(line_id, *args, **kwargs)
|
55
55
|
super
|
56
56
|
define_line_callbacks line_id
|
57
57
|
end
|
@@ -73,24 +73,24 @@ module ActiveDelivery
|
|
73
73
|
|
74
74
|
def define_line_callbacks(name)
|
75
75
|
define_callbacks name,
|
76
|
-
|
77
|
-
|
76
|
+
terminator: CALLBACK_TERMINATOR,
|
77
|
+
skip_after_callbacks_if_terminated: true
|
78
78
|
end
|
79
79
|
|
80
|
-
def before_notify(method_or_block = nil, on: :notify, **options)
|
81
|
-
method_or_block ||=
|
80
|
+
def before_notify(method_or_block = nil, on: :notify, **options, &block)
|
81
|
+
method_or_block ||= block
|
82
82
|
_normalize_callback_options(options)
|
83
83
|
set_callback on, :before, method_or_block, options
|
84
84
|
end
|
85
85
|
|
86
|
-
def after_notify(method_or_block = nil, on: :notify, **options)
|
87
|
-
method_or_block ||=
|
86
|
+
def after_notify(method_or_block = nil, on: :notify, **options, &block)
|
87
|
+
method_or_block ||= block
|
88
88
|
_normalize_callback_options(options)
|
89
89
|
set_callback on, :after, method_or_block, options
|
90
90
|
end
|
91
91
|
|
92
|
-
def around_notify(method_or_block = nil, on: :notify, **options)
|
93
|
-
method_or_block ||=
|
92
|
+
def around_notify(method_or_block = nil, on: :notify, **options, &block)
|
93
|
+
method_or_block ||= block
|
94
94
|
_normalize_callback_options(options)
|
95
95
|
set_callback on, :around, method_or_block, options
|
96
96
|
end
|
@@ -24,15 +24,15 @@ module ActiveDelivery
|
|
24
24
|
handler_class.respond_to?(method_name)
|
25
25
|
end
|
26
26
|
|
27
|
-
def notify_now(handler, mid, *args)
|
27
|
+
def notify_now(handler, mid, *args, **kwargs)
|
28
28
|
end
|
29
29
|
|
30
|
-
def notify_later(handler, mid, *args)
|
30
|
+
def notify_later(handler, mid, *args, **kwargs)
|
31
31
|
end
|
32
32
|
|
33
|
-
def notify(mid, *args, params:, sync
|
34
|
-
clazz = params.empty? ? handler_class : handler_class.with(params)
|
35
|
-
sync ? notify_now(clazz, mid, *args) : notify_later(clazz, mid, *args)
|
33
|
+
def notify(mid, *args, params:, sync:, **kwargs)
|
34
|
+
clazz = params.empty? ? handler_class : handler_class.with(**params)
|
35
|
+
sync ? notify_now(clazz, mid, *args, **kwargs) : notify_later(clazz, mid, *args, **kwargs)
|
36
36
|
end
|
37
37
|
|
38
38
|
def handler_class
|
@@ -17,12 +17,20 @@ module ActiveDelivery
|
|
17
17
|
mailer_class.action_methods.include?(method_name.to_s)
|
18
18
|
end
|
19
19
|
|
20
|
-
def notify_now(mailer, mid, *args)
|
21
|
-
|
20
|
+
def notify_now(mailer, mid, *args, **kwargs)
|
21
|
+
if kwargs.empty?
|
22
|
+
mailer.public_send(mid, *args).deliver_now
|
23
|
+
else
|
24
|
+
mailer.public_send(mid, *args, **kwargs).deliver_now
|
25
|
+
end
|
22
26
|
end
|
23
27
|
|
24
|
-
def notify_later(mailer, mid, *args)
|
25
|
-
|
28
|
+
def notify_later(mailer, mid, *args, **kwargs)
|
29
|
+
if kwargs.empty?
|
30
|
+
mailer.public_send(mid, *args).deliver_later
|
31
|
+
else
|
32
|
+
mailer.public_send(mid, *args, **kwargs).deliver_later
|
33
|
+
end
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
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
|
+
version: 0.4.0
|
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-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.0
|
61
|
+
version: 0.2.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.0
|
68
|
+
version: 0.2.0
|
69
69
|
description: Rails framework for managing all types of notifications in one place
|
70
70
|
email:
|
71
71
|
- dementiev.vm@gmail.com
|
@@ -113,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: '2.
|
116
|
+
version: '2.5'
|
117
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
119
|
- - ">="
|