global_alerts 0.0.2 → 0.3.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/README.md +62 -5
- data/app/models/global_alerts/alert.rb +13 -2
- data/lib/global_alerts/engine.rb +3 -2
- data/lib/global_alerts/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2d276ba651ab199596da21e5cb21f6df96f799c095a06a7df9a54f155adc6c8
|
4
|
+
data.tar.gz: 3edc15a256ecac67413234f6b244b44a045206e6645aa1f7cd762a656072e4a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bee7b578178af6d0151486664d193d768879dd3153967e4d96feaf69a1bca77d127557f4087fba2fcf44747f332c10be3d6c21ba7e534ed8e42c3f71bb000352
|
7
|
+
data.tar.gz: d8a26ecee06b70f5679e07e7fca6395979649391ddb6a44b839a7436eef3cafb98d0d7e04804165d1852ddd9f1211d7be8b59cde2f9fea894dfe525446d0dbbb
|
data/README.md
CHANGED
@@ -1,8 +1,68 @@
|
|
1
1
|
# GlobalAlerts
|
2
|
-
|
2
|
+
A gem for managing user-facing alerts across the portfolio.
|
3
|
+
⚠️[See current alerts](https://github.com/sul-dlss/global_alerts/blob/main/sul.yaml)
|
3
4
|
|
4
5
|
## Usage
|
5
|
-
|
6
|
+
|
7
|
+
### Consuming
|
8
|
+
|
9
|
+
- Add the gem
|
10
|
+
- Set GLOBAL_ALERTS to `<%= true %>` in the application settings.
|
11
|
+
- Set any engine configuration in the consuming application's initializers:
|
12
|
+
- GlobalAlerts::Engine.config.cache (Cache for the alerts feed; defaults to the Rails cache)
|
13
|
+
- GlobalAlerts::Engine.config.application_name (Used for app-specific alerts, default is derived from the application name)
|
14
|
+
- GlobalAlerts::Engine.config.url (URL to pull alerts from)
|
15
|
+
- Render the global_alerts/alerts partial
|
16
|
+
|
17
|
+
### Publishing alerts
|
18
|
+
|
19
|
+
In a YAML file (e.g. https://github.com/sul-dlss/global_alerts/blob/main/sul.yaml by default), configure alerts using:
|
20
|
+
|
21
|
+
- `html`: the HTML-safe alert text
|
22
|
+
- `application_name`: used for application-specific alert text; matches against the consumer's `GlobalAlerts::Engine.config.application_name`
|
23
|
+
- `from`/`to`: schedule alerts for particular times (also supports open-ended ranges with only `from` or only `to`)
|
24
|
+
|
25
|
+
Consuming applications will pick only the first relevant alert.
|
26
|
+
|
27
|
+
Restart any consuming applications.
|
28
|
+
|
29
|
+
### Example Alerts
|
30
|
+
|
31
|
+
#### Basic alert
|
32
|
+
```
|
33
|
+
alerts:
|
34
|
+
- html: A single <em>sample alert</em> across all apps. This will appear until manually removed from the YML file.
|
35
|
+
```
|
36
|
+
|
37
|
+
#### `to`
|
38
|
+
```
|
39
|
+
alerts:
|
40
|
+
- to: '2020-12-07T12:00:00-07:00'
|
41
|
+
html: This message will appear immediately and will expire on December 7th at noon.
|
42
|
+
```
|
43
|
+
|
44
|
+
#### `from`
|
45
|
+
```
|
46
|
+
alerts:
|
47
|
+
- from: '2020-12-07T12:00:00-07:00'
|
48
|
+
html: This message will begin on December 7th at noon and must be manually removed.
|
49
|
+
```
|
50
|
+
#### `from` and `to`
|
51
|
+
```
|
52
|
+
alerts:
|
53
|
+
- from: '2020-12-24T12:00:00-07:00'
|
54
|
+
to: '2020-12-25T12:00:00-07:00'
|
55
|
+
html: This message will appear from December 24th at noon and expire on December 25th at noon. This YML should be removed later.
|
56
|
+
```
|
57
|
+
|
58
|
+
#### `application_name`
|
59
|
+
```
|
60
|
+
alerts:
|
61
|
+
- application_name: 'MyLibrary
|
62
|
+
html: This message will appear on MyLibrary until manually removed.
|
63
|
+
- html: This alert will appear on all other applications with GLOBAL_ALERTS enabled
|
64
|
+
```
|
65
|
+
|
6
66
|
|
7
67
|
## Installation
|
8
68
|
Add this line to your application's Gemfile:
|
@@ -20,6 +80,3 @@ Or install it yourself as:
|
|
20
80
|
```bash
|
21
81
|
$ gem install global_alerts
|
22
82
|
```
|
23
|
-
|
24
|
-
## Contributing
|
25
|
-
Contribution directions go here.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'http'
|
2
|
+
|
1
3
|
module GlobalAlerts
|
2
4
|
class Alert
|
3
5
|
include ActiveModel::Model
|
@@ -44,10 +46,19 @@ module GlobalAlerts
|
|
44
46
|
delegate :present?, to: :html
|
45
47
|
|
46
48
|
def active?(time: Time.zone.now, for_application: nil)
|
47
|
-
return false if for_application
|
49
|
+
return false if for_application != application_name
|
48
50
|
|
49
51
|
return true if from.nil? && to.nil?
|
50
|
-
|
52
|
+
|
53
|
+
range.cover?(time)
|
54
|
+
end
|
55
|
+
|
56
|
+
def range
|
57
|
+
start_of_range = from.presence && Time.zone.parse(from)
|
58
|
+
start_of_range ||= Time.at(0) unless RUBY_VERSION > '2.7'
|
59
|
+
|
60
|
+
end_of_range = to.presence && Time.zone.parse(to)
|
61
|
+
start_of_range...end_of_range
|
51
62
|
end
|
52
63
|
|
53
64
|
def as_html
|
data/lib/global_alerts/engine.rb
CHANGED
@@ -4,10 +4,11 @@ module GlobalAlerts
|
|
4
4
|
|
5
5
|
config.cache = nil #defaults to Rails.cache
|
6
6
|
config.application_name = nil
|
7
|
-
config.url = 'https://github.com/sul-dlss/global-alerts/raw/main/sul.
|
7
|
+
config.url = 'https://github.com/sul-dlss/global-alerts/raw/main/sul.yaml'
|
8
8
|
|
9
9
|
initializer('global_alerts_default') do |app|
|
10
|
-
|
10
|
+
# parent_name is deprecated in Rails 6.1
|
11
|
+
config.application_name ||= app.class.respond_to?(:parent_name) ? app.class.parent_name.underscore : app.class.module_parent_name.underscore
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: global_alerts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|