unotifier 0.2.3 → 0.2.10
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/Gemfile.lock +1 -1
- data/LICENSE.txt +1 -1
- data/README.md +1 -5
- data/lib/hash.rb +6 -0
- data/lib/provider/action_mailer.rb +6 -1
- data/lib/unotifier/version.rb +1 -1
- data/lib/unotifier.rb +17 -4
- data/unotifier.gemspec +10 -7
- metadata +29 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ec61a1237c2bdcf5f22b0f272805090d1a82f4e83dee871c3daa01bef627d5c
|
4
|
+
data.tar.gz: 8d0c39f00d10c01a8b452c2b1a29c7f995f144993e491102004f73f65488426e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d5bce4be79ee89ca014fdde94eb48ba55829dddefd86a8250d90e2c94ee244c49a70dcabf7fe8ff09b24d8e31c5cd92b2ef4dcb019fed6c4b8accbfda851f35
|
7
|
+
data.tar.gz: e087624c1ccfc08495ea06e2e8c53993c16f2c30f4fcfa017d51279da0f6f2a5bead5f7146d36c6543207edb1c41de155db8f3257d80498f1ac7643a22a8d07a
|
data/Gemfile.lock
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -35,8 +35,4 @@ To store your notifications in database UNotifier uses provided ActiveRecord mod
|
|
35
35
|
|
36
36
|
## Contributing
|
37
37
|
|
38
|
-
Bug reports and pull requests are welcome on GitLab at https://gitlab.com/hodlhodl/unotifier.
|
39
|
-
|
40
|
-
## License
|
41
|
-
|
42
|
-
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
38
|
+
Bug reports and pull requests are welcome on GitLab at https://gitlab.com/hodlhodl-public/unotifier.
|
data/lib/hash.rb
ADDED
@@ -9,7 +9,12 @@ module UNotifier
|
|
9
9
|
|
10
10
|
def notify(notification)
|
11
11
|
return unless can_notify?(notification)
|
12
|
-
@
|
12
|
+
sending_method = if @sending_method.kind_of?(Array)
|
13
|
+
@sending_method.map { |m| m.call(notification) }&.first
|
14
|
+
else
|
15
|
+
@sending_method
|
16
|
+
end
|
17
|
+
@mailer.public_send(sending_method, notification).deliver
|
13
18
|
end
|
14
19
|
end
|
15
20
|
end
|
data/lib/unotifier/version.rb
CHANGED
data/lib/unotifier.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "yaml"
|
2
2
|
|
3
|
+
require_relative "hash"
|
3
4
|
require_relative "unotifier/version"
|
4
5
|
require_relative "exceptions"
|
5
6
|
require_relative "provider"
|
@@ -20,7 +21,13 @@ module UNotifier
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def self.notifications_config
|
23
|
-
@notifications_config ||=
|
24
|
+
@notifications_config ||= if configuration.notifications_path.kind_of?(Array)
|
25
|
+
configuration.notifications_path.each_with_object({}) do |path, config|
|
26
|
+
config.deep_merge!(YAML.load_file(path))
|
27
|
+
end
|
28
|
+
else
|
29
|
+
YAML.load_file(configuration.notifications_path)
|
30
|
+
end
|
24
31
|
rescue Errno::ENOENT
|
25
32
|
raise NotificationsConfigNotFoundError.new(configuration.notifications_path)
|
26
33
|
end
|
@@ -75,8 +82,8 @@ module UNotifier
|
|
75
82
|
notification = configuration.resource_class.new(
|
76
83
|
key: key,
|
77
84
|
target: target,
|
78
|
-
title: configuration.localization_provider.t("#{locale_key}.title", params.merge(locale: target.locale
|
79
|
-
body: configuration.localization_provider.t("#{locale_key}.
|
85
|
+
title: configuration.localization_provider.t("#{locale_key}.title", params.merge(locale: target.locale)),
|
86
|
+
body: configuration.localization_provider.t("#{locale_key}.body", params.merge(locale: target.locale, default: "")),
|
80
87
|
link: params[:link],
|
81
88
|
autohide_delay: params[:autohide_delay],
|
82
89
|
urgency: urgency
|
@@ -86,7 +93,13 @@ module UNotifier
|
|
86
93
|
notify_with = []
|
87
94
|
notify_with += configuration.site_providers if !params[:external_only] && notify_onsite?(notification, user_settings)
|
88
95
|
notify_with += configuration.external_providers if !params[:onsite_only] && notify_external?(notification, user_settings)
|
89
|
-
notify_with.each
|
96
|
+
notify_with.each do |provider|
|
97
|
+
title_provider_key = "#{locale_key}.#{provider.class.to_s.split("::").last}.title"
|
98
|
+
body_provider_key = "#{locale_key}.#{provider.class.to_s.split("::").last}.body"
|
99
|
+
notification.title = configuration.localization_provider.t(title_provider_key, params.merge(locale: target.locale)) if configuration.localization_provider.exists?(title_provider_key)
|
100
|
+
notification.body = configuration.localization_provider.t(body_provider_key, params.merge(locale: target.locale, default: "")) if configuration.localization_provider.exists?(body_provider_key)
|
101
|
+
provider.notify(notification)
|
102
|
+
end
|
90
103
|
end
|
91
104
|
|
92
105
|
def self.notify_onsite(key, target, params)
|
data/unotifier.gemspec
CHANGED
@@ -6,16 +6,18 @@ require "unotifier/version"
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "unotifier"
|
8
8
|
spec.version = UNotifier::VERSION
|
9
|
-
spec.authors = ["
|
9
|
+
spec.authors = ["mgpnd"]
|
10
10
|
spec.email = ["stillintop@gmail.com"]
|
11
11
|
|
12
12
|
spec.summary = "Ultimate user notification tool for web apps"
|
13
|
-
spec.homepage = "https://gitlab.com/hodlhodl/unotifier"
|
13
|
+
spec.homepage = "https://gitlab.com/hodlhodl-public/unotifier"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
if spec.respond_to?(:metadata)
|
17
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
18
|
+
|
17
19
|
spec.metadata["homepage_uri"] = spec.homepage
|
18
|
-
spec.metadata["sourc_code_uri"] = "https://gitlab.com/hodlhodl/unotifier"
|
20
|
+
spec.metadata["sourc_code_uri"] = "https://gitlab.com/hodlhodl-public/unotifier"
|
19
21
|
else
|
20
22
|
raise "RubyGems 2.0 or newer is required to protect against " \
|
21
23
|
"public gem pushes."
|
@@ -23,17 +25,18 @@ Gem::Specification.new do |spec|
|
|
23
25
|
|
24
26
|
# Specify which files should be added to the gem when it is released.
|
25
27
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
26
|
-
spec.files
|
28
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
27
29
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) || f.match(%r{^\.rspec}) }
|
28
30
|
end
|
31
|
+
|
29
32
|
spec.bindir = "bin"
|
30
33
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
31
34
|
spec.require_paths = ["lib"]
|
32
35
|
|
33
36
|
spec.add_development_dependency "bundler", "~> 1.17"
|
34
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
35
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
36
|
-
spec.add_development_dependency "pry"
|
37
37
|
spec.add_development_dependency "byebug"
|
38
38
|
spec.add_development_dependency "i18n"
|
39
|
+
spec.add_development_dependency "pry"
|
40
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
41
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
39
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unotifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- mgpnd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -25,33 +25,33 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.17'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '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: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: i18n
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,33 +67,33 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
75
|
+
version: '10.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
82
|
+
version: '10.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
89
|
+
version: '3.0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
96
|
+
version: '3.0'
|
97
97
|
description:
|
98
98
|
email:
|
99
99
|
- stillintop@gmail.com
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- bin/setup
|
118
118
|
- lib/configuration.rb
|
119
119
|
- lib/exceptions.rb
|
120
|
+
- lib/hash.rb
|
120
121
|
- lib/provider.rb
|
121
122
|
- lib/provider/action_cable.rb
|
122
123
|
- lib/provider/action_mailer.rb
|
@@ -125,12 +126,13 @@ files:
|
|
125
126
|
- lib/unotifier.rb
|
126
127
|
- lib/unotifier/version.rb
|
127
128
|
- unotifier.gemspec
|
128
|
-
homepage: https://gitlab.com/hodlhodl/unotifier
|
129
|
+
homepage: https://gitlab.com/hodlhodl-public/unotifier
|
129
130
|
licenses:
|
130
131
|
- MIT
|
131
132
|
metadata:
|
132
|
-
|
133
|
-
|
133
|
+
allowed_push_host: https://rubygems.org
|
134
|
+
homepage_uri: https://gitlab.com/hodlhodl-public/unotifier
|
135
|
+
sourc_code_uri: https://gitlab.com/hodlhodl-public/unotifier
|
134
136
|
post_install_message:
|
135
137
|
rdoc_options: []
|
136
138
|
require_paths:
|
@@ -146,8 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
148
|
- !ruby/object:Gem::Version
|
147
149
|
version: '0'
|
148
150
|
requirements: []
|
149
|
-
|
150
|
-
rubygems_version: 2.7.8
|
151
|
+
rubygems_version: 3.0.3
|
151
152
|
signing_key:
|
152
153
|
specification_version: 4
|
153
154
|
summary: Ultimate user notification tool for web apps
|