rpush 6.0.0 → 7.0.1

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: 7f8cbb341eafccf585f3967e5b1ef434a422f9a14175466060a978d2d4adbe4e
4
- data.tar.gz: c8f767c447855b04a7e2d9e980a9408bdbafe11f6e84f711c0893122f2202cec
3
+ metadata.gz: 409c28bf9f63343232e1c7db56f8d7131acc70b4828032059f37eab3a4606e6c
4
+ data.tar.gz: 3f07d7e79828fa43ab5ed73a9b19183a9f4ac9e5a3d8891f1ecfec42c7375c03
5
5
  SHA512:
6
- metadata.gz: 3e6997a5008122ca85fed5a5f4eab96e0c6e585aa8fc4ab305c394608c10fb6bfdec2b79077e3098e137e173e65b0e7804038b5230013a51446d980ed2d6bb95
7
- data.tar.gz: 5e6b265e5e034bebe78a30cdd4f2af63a08933777a58d86d1f8c6a73a2f4783fad7cba6f4b2181a08a79def81879594544979642dae8c3326de407205c6c4852
6
+ metadata.gz: 400a7241c337ff9874767be4ee051d1494676665bd17e9b3acb2e3ce8efae236971a138888da6c0172e0c649276e97f4d639430733bad345e7980d408e8c3436
7
+ data.tar.gz: e81b66da807a2bc8a386a12825aed37c452672be899b69ff633d65b80548903669e7d63b3b1eec899633557a489157e8083ed562b2665c017566df9ad220c151
data/CHANGELOG.md CHANGED
@@ -1,8 +1,42 @@
1
1
  # Changelog
2
2
 
3
+ ## [v7.0.1](https://github.com/rpush/rpush/tree/v7.0.1) (2022-03-02)
4
+
5
+ [Full Changelog](https://github.com/rpush/rpush/compare/v7.0.0...v7.0.1)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - Fix deprecation warnings from the redis gem [\#636](https://github.com/rpush/rpush/pull/636) ([sharang-d](https://github.com/sharang-d))
10
+
3
11
  ## [Unreleased](https://github.com/rpush/rpush/tree/HEAD)
4
12
 
5
- [Full Changelog](https://github.com/rpush/rpush/compare/v5.4.0...HEAD)
13
+ [Full Changelog](https://github.com/rpush/rpush/compare/v7.0.0...HEAD)
14
+
15
+ ## [v7.0.0](https://github.com/rpush/rpush/tree/HEAD)
16
+
17
+ [Full Changelog](https://github.com/rpush/rpush/compare/v6.0.1...v7.0.0)
18
+
19
+ **Merged pull requests:**
20
+
21
+ - Test with Ruby 3.1 [\#632](https://github.com/rpush/rpush/pull/632) ([aried3r](https://github.com/aried3r))
22
+ - Resolves Rails 7 Time.now.to\_s deprecation warning [\#630](https://github.com/rpush/rpush/pull/630) ([gregblake](https://github.com/gregblake))
23
+ - Adds Rails 7 Support [\#629](https://github.com/rpush/rpush/pull/629) ([gregblake](https://github.com/gregblake))
24
+ - Test with Rails 7.0.0.alpha2 [\#626](https://github.com/rpush/rpush/pull/626) ([aried3r](https://github.com/aried3r))
25
+
26
+ **Breaking:**
27
+
28
+ - Drop support for Ruby 2.3 [\#631](https://github.com/rpush/rpush/pull/631) ([aried3r](https://github.com/aried3r))
29
+
30
+ ## [v6.0.1](https://github.com/rpush/rpush/tree/v6.0.1) (2021-10-08)
31
+
32
+ [Full Changelog](https://github.com/rpush/rpush/compare/v6.0.0...v6.0.1)
33
+
34
+ **Merged pull requests:**
35
+
36
+ - Don't limit webpush registration keys [\#624](https://github.com/rpush/rpush/pull/624) ([treyrich](https://github.com/treyrich))
37
+ - Add Prometheus Exporter plugin link to README [\#617](https://github.com/rpush/rpush/pull/617) ([maxsz](https://github.com/maxsz))
38
+ - Reference current interface in config template [\#569](https://github.com/rpush/rpush/pull/569) ([benlangfeld](https://github.com/benlangfeld))
39
+ - Default the Rails environment to RAILS\_ENV if set [\#562](https://github.com/rpush/rpush/pull/562) ([benlangfeld](https://github.com/benlangfeld))
6
40
 
7
41
  ## [v6.0.0](https://github.com/rpush/rpush/tree/v6.0.0) (2021-05-21)
8
42
 
data/README.md CHANGED
@@ -24,7 +24,7 @@ Rpush aims to be the *de facto* gem for sending push notifications in Ruby. Its
24
24
 
25
25
  * Use [**ActiveRecord**](https://github.com/rpush/rpush/wiki/Using-ActiveRecord) or [**Redis**](https://github.com/rpush/rpush/wiki/Using-Redis) for storage.
26
26
  * Plugins for [**Bugsnag**](https://github.com/rpush/rpush-plugin-bugsnag),
27
- [**Sentry**](https://github.com/rpush/rpush-plugin-sentry), [**StatsD**](https://github.com/rpush/rpush-plugin-statsd) or [write your own](https://github.com/rpush/rpush/wiki/Writing-a-Plugin).
27
+ [**Sentry**](https://github.com/rpush/rpush-plugin-sentry), [**StatsD**](https://github.com/rpush/rpush-plugin-statsd). Third party plugins: [**Prometheus Exporter**](https://github.com/equinux/rpush-plugin-prometheus-exporter). Or [write your own](https://github.com/rpush/rpush/wiki/Writing-a-Plugin).
28
28
  * Seamless integration with your projects, including **Rails**.
29
29
  * Run as a [daemon](https://github.com/rpush/rpush#as-a-daemon), inside a [job queue](https://github.com/rpush/rpush/wiki/Push-API), on the [command-line](https://github.com/rpush/rpush#on-the-command-line) or [embedded](https://github.com/rpush/rpush/wiki/Embedding-API) in another process.
30
30
  * Scales vertically (threading) and horizontally (multiple processes).
@@ -46,10 +46,7 @@ Rpush.reflect do |on|
46
46
  # Called when a notification is queued internally for delivery.
47
47
  # The internal queue for each app runner can be inspected:
48
48
  #
49
- # Rpush::Daemon::AppRunner.runners.each do |app_id, runner|
50
- # runner.app
51
- # runner.queue_size
52
- # end
49
+ # Rpush::Daemon::AppRunner.status
53
50
  #
54
51
  # on.notification_enqueued do |notification|
55
52
  # end
@@ -58,7 +58,11 @@ class Rpush200Updates < ActiveRecord::Migration[5.0]
58
58
 
59
59
  def self.adapter_name
60
60
  env = (defined?(Rails) && Rails.env) ? Rails.env : 'development'
61
- Hash[ActiveRecord::Base.configurations[env].map { |k,v| [k.to_sym,v] }][:adapter]
61
+ if ActiveRecord::VERSION::MAJOR > 6
62
+ ActiveRecord::Base.configurations.configs_for(env_name: env).first.configuration_hash[:adapter]
63
+ else
64
+ Hash[ActiveRecord::Base.configurations[env].map { |k,v| [k.to_sym,v] }][:adapter]
65
+ end
62
66
  end
63
67
 
64
68
  def self.postgresql?
@@ -11,7 +11,7 @@ module Rpush
11
11
  return if record.registration_ids.size > 1
12
12
  reg = record.registration_ids.first
13
13
  unless reg.is_a?(Hash) &&
14
- reg.keys.sort == KEYS &&
14
+ (KEYS-reg.keys).empty? &&
15
15
  reg[:endpoint].is_a?(String) &&
16
16
  reg[:keys].is_a?(Hash)
17
17
  record.errors.add(:base, 'Registration must have :endpoint (String) and :keys (Hash) keys')
@@ -181,6 +181,17 @@ module Rpush
181
181
  id
182
182
  end
183
183
 
184
+ def adapter_name
185
+ env = (defined?(Rails) && Rails.env) ? Rails.env : 'development'
186
+ if ::ActiveRecord::VERSION::MAJOR > 6
187
+ ::ActiveRecord::Base.configurations.configs_for(env_name: env).first.configuration_hash[:adapter]
188
+ else
189
+ config = ::ActiveRecord::Base.configurations[env]
190
+ return '' unless config
191
+ Hash[config.map { |k, v| [k.to_sym, v] }][:adapter]
192
+ end
193
+ end
194
+
184
195
  private
185
196
 
186
197
  def create_gcm_like_notification(notification, attrs, data, registration_ids, deliver_after, app) # rubocop:disable Metrics/ParameterLists
@@ -199,13 +210,6 @@ module Rpush
199
210
  relation = Rpush::Client::ActiveRecord::Notification.where('processing = ? AND delivered = ? AND failed = ? AND (deliver_after IS NULL OR deliver_after < ?)', false, false, false, Time.now)
200
211
  relation.order('deliver_after ASC, created_at ASC')
201
212
  end
202
-
203
- def adapter_name
204
- env = (defined?(Rails) && Rails.env) ? Rails.env : 'development'
205
- config = ::ActiveRecord::Base.configurations[env]
206
- return '' unless config
207
- Hash[config.map { |k, v| [k.to_sym, v] }][:adapter]
208
- end
209
213
  end
210
214
  end
211
215
  end
@@ -152,10 +152,10 @@ module Rpush
152
152
  retryable_ns = Rpush::Client::Redis::Notification.absolute_retryable_namespace
153
153
 
154
154
  Modis.with_connection do |redis|
155
- retryable_results = redis.multi do
155
+ retryable_results = redis.multi do |transaction|
156
156
  now = Time.now.to_i
157
- redis.zrangebyscore(retryable_ns, 0, now)
158
- redis.zremrangebyscore(retryable_ns, 0, now)
157
+ transaction.zrangebyscore(retryable_ns, 0, now)
158
+ transaction.zremrangebyscore(retryable_ns, 0, now)
159
159
  end
160
160
 
161
161
  retryable_results.first
@@ -167,9 +167,9 @@ module Rpush
167
167
  pending_ns = Rpush::Client::Redis::Notification.absolute_pending_namespace
168
168
 
169
169
  Modis.with_connection do |redis|
170
- pending_results = redis.multi do
171
- redis.zrange(pending_ns, 0, limit)
172
- redis.zremrangebyrank(pending_ns, 0, limit)
170
+ pending_results = redis.multi do |transaction|
171
+ transaction.zrange(pending_ns, 0, limit)
172
+ transaction.zremrangebyrank(pending_ns, 0, limit)
173
173
  end
174
174
 
175
175
  pending_results.first
data/lib/rpush/logger.rb CHANGED
@@ -69,7 +69,7 @@ module Rpush
69
69
  msg = "#{msg.class.name}, #{msg.message}\n#{formatted_backtrace}"
70
70
  end
71
71
 
72
- formatted_msg = "[#{Time.now.to_s(:db)}] "
72
+ formatted_msg = "[#{Time.now.to_formatted_s(:db)}]"
73
73
  formatted_msg << '[rpush] ' if Rpush.config.embedded
74
74
  formatted_msg << "[#{prefix}] " if prefix
75
75
  formatted_msg << msg
data/lib/rpush/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Rpush
2
2
  module VERSION
3
- MAJOR = 6
3
+ MAJOR = 7
4
4
  MINOR = 0
5
- TINY = 0
5
+ TINY = 1
6
6
  PRE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".").freeze
@@ -8,6 +8,7 @@ describe 'Webpush' do
8
8
 
9
9
  let(:device_reg) {
10
10
  { endpoint: 'https://webpush-provider.example.org/push/some-id',
11
+ expirationTime: nil,
11
12
  keys: {'auth' => 'DgN9EBia1o057BdhCOGURA', 'p256dh' => 'BAtxJ--7vHq9IVm8utUB3peJ4lpxRqk1rukCIkVJOomS83QkCnrQ4EyYQsSaCRgy_c8XPytgXxuyAvRJdnTPK4A'} }
12
13
  }
13
14
  let(:notification) { Rpush::Webpush::Notification.create!(app: app, registration_ids: [device_reg], data: { message: 'test' }) }
@@ -66,4 +66,11 @@ describe Rpush::Daemon::Store::ActiveRecord do
66
66
  expect(store.deliverable_notifications(Rpush.config.batch_size)).to be_empty
67
67
  end
68
68
  end
69
+
70
+ describe "#adapter_name" do
71
+ it "should return the adapter name" do
72
+ adapter = ENV["ADAPTER"] || "postgresql"
73
+ expect(store.adapter_name).to eq(adapter)
74
+ end
75
+ end
69
76
  end if active_record?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpush
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 7.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Leitch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-21 00:00:00.000000000 Z
11
+ date: 2022-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -292,16 +292,16 @@ dependencies:
292
292
  name: rubocop
293
293
  requirement: !ruby/object:Gem::Requirement
294
294
  requirements:
295
- - - ">="
295
+ - - "~>"
296
296
  - !ruby/object:Gem::Version
297
- version: '0'
297
+ version: 1.12.0
298
298
  type: :development
299
299
  prerelease: false
300
300
  version_requirements: !ruby/object:Gem::Requirement
301
301
  requirements:
302
- - - ">="
302
+ - - "~>"
303
303
  - !ruby/object:Gem::Version
304
- version: '0'
304
+ version: 1.12.0
305
305
  - !ruby/object:Gem::Dependency
306
306
  name: rubocop-performance
307
307
  requirement: !ruby/object:Gem::Requirement
@@ -693,6 +693,7 @@ metadata:
693
693
  bug_tracker_uri: https://github.com/rpush/rpush/issues
694
694
  changelog_uri: https://github.com/rpush/rpush/blob/master/CHANGELOG.md
695
695
  source_code_uri: https://github.com/rpush/rpush
696
+ rubygems_mfa_required: 'true'
696
697
  post_install_message: |
697
698
  When upgrading Rpush, don't forget to run `bundle exec rpush init` to get all the latest migrations.
698
699
 
@@ -705,14 +706,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
705
706
  requirements:
706
707
  - - ">="
707
708
  - !ruby/object:Gem::Version
708
- version: 2.3.0
709
+ version: 2.4.0
709
710
  required_rubygems_version: !ruby/object:Gem::Requirement
710
711
  requirements:
711
712
  - - ">="
712
713
  - !ruby/object:Gem::Version
713
714
  version: '0'
714
715
  requirements: []
715
- rubygems_version: 3.1.4
716
+ rubygems_version: 3.3.5
716
717
  signing_key:
717
718
  specification_version: 4
718
719
  summary: The push notification service for Ruby.