rpush 6.0.0 → 7.0.1

Sign up to get free protection for your applications and to get access to all the features.
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.