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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80c6008fc3858caacc9c80d6868f6312d9428e5a1a017f1b031786d6a0b6c2dc
4
- data.tar.gz: 01030bb0d1f820819ce83a591da2897731b73c3c35868b8405b43e416fdbc093
3
+ metadata.gz: b2d276ba651ab199596da21e5cb21f6df96f799c095a06a7df9a54f155adc6c8
4
+ data.tar.gz: 3edc15a256ecac67413234f6b244b44a045206e6645aa1f7cd762a656072e4a4
5
5
  SHA512:
6
- metadata.gz: 8952e26ab3864ad79cd94ce744477ff64aa725edcd4096ee03c7304b52c763f134c8ae1521112131ecfda1286f577a2d3043b235e6724c9353661ca62957fdb5
7
- data.tar.gz: 919a4c120b77c8379fb390478bd083cf3456f22199a050feee0fcd510127ab9eddba106503ec32796a34ba6c08c4c4478fb7170d52b8da77bc1127abc9cfd4fb
6
+ metadata.gz: bee7b578178af6d0151486664d193d768879dd3153967e4d96feaf69a1bca77d127557f4087fba2fcf44747f332c10be3d6c21ba7e534ed8e42c3f71bb000352
7
+ data.tar.gz: d8a26ecee06b70f5679e07e7fca6395979649391ddb6a44b839a7436eef3cafb98d0d7e04804165d1852ddd9f1211d7be8b59cde2f9fea894dfe525446d0dbbb
data/README.md CHANGED
@@ -1,8 +1,68 @@
1
1
  # GlobalAlerts
2
- Short description and motivation.
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
- How to use my plugin.
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 == application_name
49
+ return false if for_application != application_name
48
50
 
49
51
  return true if from.nil? && to.nil?
50
- ((from.presence && Time.zone.parse(from))...(to.presence && Time.zone.parse(to))).cover?(time)
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
@@ -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.json'
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
- config.application_name ||= app.class.parent_name.underscore
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
@@ -1,3 +1,3 @@
1
1
  module GlobalAlerts
2
- VERSION = '0.0.2'
2
+ VERSION = '0.3.0'
3
3
  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.2
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: 2020-08-24 00:00:00.000000000 Z
11
+ date: 2021-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails