rpush 2.7.0 → 3.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +41 -0
- data/README.md +36 -15
- data/lib/generators/rpush_migration_generator.rb +1 -0
- data/lib/generators/templates/add_adm.rb +1 -1
- data/lib/generators/templates/add_alert_is_json_to_rapns_notifications.rb +1 -1
- data/lib/generators/templates/add_app_to_rapns.rb +1 -1
- data/lib/generators/templates/add_fail_after_to_rpush_notifications.rb +1 -1
- data/lib/generators/templates/add_gcm.rb +1 -1
- data/lib/generators/templates/add_rpush.rb +11 -11
- data/lib/generators/templates/add_wpns.rb +1 -1
- data/lib/generators/templates/create_rapns_apps.rb +1 -1
- data/lib/generators/templates/create_rapns_feedback.rb +1 -1
- data/lib/generators/templates/create_rapns_notifications.rb +1 -1
- data/lib/generators/templates/rename_rapns_to_rpush.rb +1 -1
- data/lib/generators/templates/rpush.rb +1 -1
- data/lib/generators/templates/rpush_2_0_0_updates.rb +1 -1
- data/lib/generators/templates/rpush_2_1_0_updates.rb +1 -1
- data/lib/generators/templates/rpush_2_6_0_updates.rb +1 -1
- data/lib/generators/templates/rpush_2_7_0_updates.rb +1 -1
- data/lib/generators/templates/rpush_3_0_0_updates.rb +11 -0
- data/lib/rpush.rb +2 -9
- data/lib/rpush/apns_feedback.rb +4 -0
- data/lib/rpush/cli.rb +2 -2
- data/lib/rpush/client/active_model.rb +3 -0
- data/lib/rpush/client/active_model/apns/notification.rb +11 -1
- data/lib/rpush/client/active_model/apns2/app.rb +15 -0
- data/lib/rpush/client/active_model/apns2/notification.rb +9 -0
- data/lib/rpush/client/active_record.rb +3 -0
- data/lib/rpush/client/active_record/apns/feedback.rb +0 -4
- data/lib/rpush/client/active_record/apns2/app.rb +11 -0
- data/lib/rpush/client/active_record/apns2/notification.rb +10 -0
- data/lib/rpush/client/active_record/app.rb +0 -4
- data/lib/rpush/client/active_record/notification.rb +0 -7
- data/lib/rpush/client/redis.rb +3 -0
- data/lib/rpush/client/redis/apns2/app.rb +11 -0
- data/lib/rpush/client/redis/apns2/notification.rb +11 -0
- data/lib/rpush/client/redis/notification.rb +1 -0
- data/lib/rpush/daemon.rb +5 -3
- data/lib/rpush/daemon/apns2.rb +10 -0
- data/lib/rpush/daemon/apns2/delivery.rb +127 -0
- data/lib/rpush/daemon/dispatcher/apns_http2.rb +50 -0
- data/lib/rpush/daemon/dispatcher/apns_tcp.rb +1 -1
- data/lib/rpush/daemon/dispatcher/http.rb +1 -1
- data/lib/rpush/daemon/gcm/delivery.rb +5 -5
- data/lib/rpush/daemon/service_config_methods.rb +4 -3
- data/lib/rpush/daemon/store/active_record/reconnectable.rb +11 -3
- data/lib/rpush/daemon/synchronizer.rb +14 -12
- data/lib/rpush/version.rb +12 -1
- data/spec/functional/apns2_spec.rb +232 -0
- data/spec/functional/apns_spec.rb +1 -2
- data/spec/functional/synchronization_spec.rb +29 -0
- data/spec/spec_helper.rb +0 -5
- data/spec/support/active_record_setup.rb +2 -1
- data/spec/unit/apns_feedback_spec.rb +9 -2
- data/spec/unit/client/active_record/apns/notification_spec.rb +34 -2
- data/spec/unit/daemon/store/active_record/reconnectable_spec.rb +30 -0
- data/spec/unit_spec_helper.rb +2 -21
- metadata +256 -29
- data/lib/rpush/client/mongoid.rb +0 -36
- data/lib/rpush/client/mongoid/adm/app.rb +0 -14
- data/lib/rpush/client/mongoid/adm/notification.rb +0 -11
- data/lib/rpush/client/mongoid/apns/app.rb +0 -11
- data/lib/rpush/client/mongoid/apns/feedback.rb +0 -24
- data/lib/rpush/client/mongoid/apns/notification.rb +0 -15
- data/lib/rpush/client/mongoid/app.rb +0 -23
- data/lib/rpush/client/mongoid/gcm/app.rb +0 -11
- data/lib/rpush/client/mongoid/gcm/notification.rb +0 -11
- data/lib/rpush/client/mongoid/notification.rb +0 -51
- data/lib/rpush/client/mongoid/wns/app.rb +0 -14
- data/lib/rpush/client/mongoid/wns/badge_notification.rb +0 -15
- data/lib/rpush/client/mongoid/wns/notification.rb +0 -11
- data/lib/rpush/client/mongoid/wns/raw_notification.rb +0 -11
- data/lib/rpush/client/mongoid/wpns/app.rb +0 -11
- data/lib/rpush/client/mongoid/wpns/notification.rb +0 -11
- data/lib/rpush/daemon/store/mongoid.rb +0 -157
- data/spec/support/config/mongoid.yml +0 -69
- data/spec/support/mongoid_setup.rb +0 -10
- data/spec/unit/daemon/store/mongoid_spec.rb +0 -339
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3a376996f25fb2305f09b2cf069aaddf26e5d6f
|
4
|
+
data.tar.gz: 9add19dd6ade95761aee96acdf7eac4149e8e8b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bb61ed7f84c1a43a8aafc2f212f1b0cdff0f8d06b9d3ff1995959f63627cb23ddc98ab48c1ca723552c44538038231d771b238749d69eb215197ac45e7045ef
|
7
|
+
data.tar.gz: ea5dea83855836f46ce6a35a48e5b35104f9979650b50370604bf8c0fe3de128b38db75f61ff714465b2593b3d0398af6dc4d303e8f7f2b2fef7147aeaf16d98
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,44 @@
|
|
1
|
+
## HEAD
|
2
|
+
|
3
|
+
### Breaking Changes
|
4
|
+
|
5
|
+
- None
|
6
|
+
|
7
|
+
### Added
|
8
|
+
|
9
|
+
- None
|
10
|
+
|
11
|
+
### Fixed
|
12
|
+
|
13
|
+
- None
|
14
|
+
|
15
|
+
## 3.0.0.rc1 (2017-08-31)
|
16
|
+
|
17
|
+
When upgrading, don't forget to run `bundle exec rpush init` to get all the latest migrations.
|
18
|
+
|
19
|
+
#### Features
|
20
|
+
|
21
|
+
* Added support for APNS `mutable-content` ([#296](https://github.com/rpush/rpush/pull/296) by [@tdtran](https://github.com/tdtran))
|
22
|
+
* Added support for HTTP2 base APNS Api ([#315](https://github.com/rpush/rpush/pull/315) by [@soulfly](https://github.com/soulfly) and [@Nattfodd](https://github.com/Nattfodd))
|
23
|
+
|
24
|
+
#### Changes
|
25
|
+
|
26
|
+
* **Breaking:** Dropped support for old Rubies and Rails versions. rpush 3.0 only supports Ruby versions 2.2.2 or higher and
|
27
|
+
Rails 4.2 or higher. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
|
28
|
+
* **Breaking:** Dropped MongoDB support because there was no one maintaining it. But we're open to adding it back in. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
|
29
|
+
* **Breaking:** Dropped JRuby support. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
|
30
|
+
|
31
|
+
* Make synchronizer aware of GCM and WNS apps ([#254](https://github.com/rpush/rpush/pull/254) by [@wouterh](https://github.com/wouterh))
|
32
|
+
* Precise after init commit msg ([#266](https://github.com/rpush/rpush/pull/266) by [@azranel](https://github.com/azranel))
|
33
|
+
* Use new GCM endpoint ([#303](https://github.com/rpush/rpush/pull/303) by [@aried3r](https://github.com/aried3r))
|
34
|
+
* Remove sound default value ([#320](https://github.com/rpush/rpush/pull/320) by [@amaierhofer](https://github.com/amaierhofer))
|
35
|
+
|
36
|
+
#### Bugfixes
|
37
|
+
|
38
|
+
* ~~~Lock `net-http-persistent` dependency to `< 3`. See also [#306](https://github.com/rpush/rpush/issues/306) for more details. (by [@amaierhofer](https://github.com/amaierhofer))~~~
|
39
|
+
* Fix `net-http-persistent` initializer to support version 2.x as well as 3.x. ([#309](https://github.com/rpush/rpush/pull/309) by [@amirmujkic](https://github.com/amirmujkic))
|
40
|
+
* Fixed Rpush::ApnsFeedback being run on every application type when using Redis. ([#318](https://github.com/rpush/rpush/pull/318) by [@robertasg](https://github.com/robertasg))
|
41
|
+
|
1
42
|
## 2.7.0 (February 9, 2016)
|
2
43
|
|
3
44
|
#### Features
|
data/README.md
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
[![Gem Version](https://badge.fury.io/rb/rpush.svg)](http://badge.fury.io/rb/rpush)
|
2
|
+
[![Build Status](https://travis-ci.org/rpush/rpush.svg?branch=master)](https://travis-ci.org/rpush/rpush)
|
3
|
+
[![Test Coverage](https://codeclimate.com/github/rpush/rpush/badges/coverage.svg)](https://codeclimate.com/github/rpush/rpush)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/rpush/rpush/badges/gpa.svg)](https://codeclimate.com/github/rpush/rpush)
|
2
5
|
[![Join the chat at https://gitter.im/rpush/rpush](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/rpush/rpush?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
3
6
|
|
4
7
|
<img src="https://raw.github.com/rpush/rpush/master/logo.png" align="right" width="200px" />
|
@@ -11,13 +14,13 @@ Rpush aims to be the *de facto* gem for sending push notifications in Ruby. Its
|
|
11
14
|
|
12
15
|
* [**Apple Push Notification Service**](#apple-push-notification-service)
|
13
16
|
* Including Safari Push Notifications.
|
14
|
-
* [**
|
17
|
+
* [**Firebase Cloud Messaging**](#firebase-cloud-messaging) (used to be Google Cloud Messaging)
|
15
18
|
* [**Amazon Device Messaging**](#amazon-device-messaging)
|
16
19
|
* [**Windows Phone Push Notification Service**](#windows-phone-notification-service)
|
17
20
|
|
18
21
|
#### Feature Highlights
|
19
22
|
|
20
|
-
* Use [**ActiveRecord**](https://github.com/rpush/rpush/wiki/Using-ActiveRecord)
|
23
|
+
* Use [**ActiveRecord**](https://github.com/rpush/rpush/wiki/Using-ActiveRecord) or [**Redis**](https://github.com/rpush/rpush/wiki/Using-Redis) for storage.
|
21
24
|
* Plugins for [**Bugsnag**](https://github.com/rpush/rpush-plugin-bugsnag),
|
22
25
|
[**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).
|
23
26
|
* Seamless integration with your projects, including **Rails**.
|
@@ -40,20 +43,22 @@ Initialize Rpush into your project. **Rails will be detected automatically.**
|
|
40
43
|
|
41
44
|
```sh
|
42
45
|
$ cd /path/to/project
|
43
|
-
$
|
46
|
+
$ bundle
|
47
|
+
$ bundle exec rpush init
|
44
48
|
```
|
45
49
|
|
46
50
|
### Create an App & Notification
|
47
51
|
|
48
52
|
#### Apple Push Notification Service
|
49
53
|
|
54
|
+
|
50
55
|
If this is your first time using the APNs, you will need to generate SSL certificates. See [Generating Certificates](https://github.com/rpush/rpush/wiki/Generating-Certificates) for instructions.
|
51
56
|
|
52
57
|
```ruby
|
53
58
|
app = Rpush::Apns::App.new
|
54
59
|
app.name = "ios_app"
|
55
60
|
app.certificate = File.read("/path/to/sandbox.pem")
|
56
|
-
app.environment = "
|
61
|
+
app.environment = "development" # APNs environment.
|
57
62
|
app.password = "certificate password"
|
58
63
|
app.connections = 1
|
59
64
|
app.save!
|
@@ -72,7 +77,11 @@ The `url_args` attribute is available for Safari Push Notifications.
|
|
72
77
|
|
73
78
|
You should also implement the [ssl_certificate_will_expire](https://github.com/rpush/rpush/wiki/Reflection-API) reflection to monitor when your certificate is due to expire.
|
74
79
|
|
75
|
-
|
80
|
+
To use the newer APNs Api replace `Rpush::Apns::App` with `Rpush::Apns2::App`.
|
81
|
+
|
82
|
+
#### Firebase Cloud Messaging
|
83
|
+
|
84
|
+
FCM and GCM are – as of writing – compatible with each other. See also [this comment](https://github.com/rpush/rpush/issues/284#issuecomment-228330206) for further references.
|
76
85
|
|
77
86
|
```ruby
|
78
87
|
app = Rpush::Gcm::App.new
|
@@ -97,9 +106,9 @@ n.notification = { body: 'great match!',
|
|
97
106
|
n.save!
|
98
107
|
```
|
99
108
|
|
100
|
-
|
109
|
+
FCM also requires you to respond to [Canonical IDs](https://github.com/rpush/rpush/wiki/Canonical-IDs).
|
101
110
|
|
102
|
-
Check the [
|
111
|
+
Check the [FCM reference](https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support) for what keys you can use and are available to you. **Note:** Not all are yet implemented in Rpush.
|
103
112
|
|
104
113
|
#### Amazon Device Messaging
|
105
114
|
|
@@ -150,6 +159,10 @@ Uses the more recent [Toast template](https://msdn.microsoft.com/en-us/library/w
|
|
150
159
|
|
151
160
|
The `client_id` here is the SID URL as seen [here](https://msdn.microsoft.com/en-us/library/windows/apps/hh465407.aspx#7-SIDandSecret). Do not confuse it with the `client_id` on dashboard.
|
152
161
|
|
162
|
+
You can (optionally) include a launch argument by adding a `launch` key to the notification data.
|
163
|
+
|
164
|
+
You can (optionally) include an [audio element](https://msdn.microsoft.com/en-us/library/windows/apps/xaml/br230842.aspx) by setting the sound on the notification.
|
165
|
+
|
153
166
|
```ruby
|
154
167
|
app = Rpush::Wns::App.new
|
155
168
|
app.name = "windows_phone_app"
|
@@ -163,7 +176,8 @@ app.save!
|
|
163
176
|
n = Rpush::Wns::Notification.new
|
164
177
|
n.app = Rpush::Wns::App.find_by_name("windows_phone_app")
|
165
178
|
n.uri = "http://..."
|
166
|
-
n.data = {title:"MyApp", body:"Hello world"}
|
179
|
+
n.data = {title:"MyApp", body:"Hello world", launch:"launch-argument"}
|
180
|
+
n.sound = "ms-appx:///mynotificationsound.wav"
|
167
181
|
n.save!
|
168
182
|
```
|
169
183
|
|
@@ -180,6 +194,18 @@ n.data = { foo: 'foo', bar: 'bar' }
|
|
180
194
|
n.save!
|
181
195
|
```
|
182
196
|
|
197
|
+
#### Windows Badge Push Notifications
|
198
|
+
|
199
|
+
Uses the [badge template](https://msdn.microsoft.com/en-us/library/windows/apps/xaml/br212849.aspx) and the type `wns/badge`.
|
200
|
+
|
201
|
+
```ruby
|
202
|
+
n = Rpush::Wns::BadgeNotification.new
|
203
|
+
n.app = Rpush::Wns::App.find_by_name("windows_phone_app")
|
204
|
+
n.uri = 'http://...'
|
205
|
+
n.badge = 4
|
206
|
+
n.save!
|
207
|
+
```
|
208
|
+
|
183
209
|
### Running Rpush
|
184
210
|
|
185
211
|
It is recommended to run Rpush as a separate process in most cases, though embedding and manual modes are provided for low-workload environments.
|
@@ -260,7 +286,7 @@ You should run `rpush init` after upgrading Rpush to check for configuration and
|
|
260
286
|
* [Why open multiple connections to the APNs?](https://github.com/rpush/rpush/wiki/Why-open-multiple-connections-to-the-APNs%3F)
|
261
287
|
* [Silent failures might be dropped connections](https://github.com/rpush/rpush/wiki/Dropped-connections)
|
262
288
|
|
263
|
-
###
|
289
|
+
### Firebase Cloud Messaging
|
264
290
|
* [Notification Options](https://github.com/rpush/rpush/wiki/GCM-Notification-Options)
|
265
291
|
* [Canonical IDs](https://github.com/rpush/rpush/wiki/Canonical-IDs)
|
266
292
|
* [Delivery Failures & Retries](https://github.com/rpush/rpush/wiki/Delivery-Failures-&-Retries)
|
@@ -275,9 +301,4 @@ Note that the database username is changed at runtime to be the currently logged
|
|
275
301
|
with mysql and you're using a user named 'bob', you will need to grant a mysql user 'bob' access to the 'rpush_test'
|
276
302
|
mysql database.
|
277
303
|
|
278
|
-
To switch between ActiveRecord and Redis, set the `CLIENT` environment variable to either `active_record
|
279
|
-
|
280
|
-
|
281
|
-
[![Build Status](https://secure.travis-ci.org/rpush/rpush.svg?branch=master)](http://travis-ci.org/rpush/rpush)
|
282
|
-
[![Test Coverage](https://codeclimate.com/github/rpush/rpush/badges/coverage.svg)](https://codeclimate.com/github/rpush/rpush)
|
283
|
-
[![Code Climate](https://codeclimate.com/github/rpush/rpush/badges/gpa.svg)](https://codeclimate.com/github/rpush/rpush)
|
304
|
+
To switch between ActiveRecord and Redis, set the `CLIENT` environment variable to either `active_record` or `redis`.
|
@@ -42,6 +42,7 @@ class RpushMigrationGenerator < Rails::Generators::Base
|
|
42
42
|
add_rpush_migration('rpush_2_1_0_updates')
|
43
43
|
add_rpush_migration('rpush_2_6_0_updates')
|
44
44
|
add_rpush_migration('rpush_2_7_0_updates')
|
45
|
+
add_rpush_migration('rpush_3_0_0_updates')
|
45
46
|
end
|
46
47
|
|
47
48
|
protected
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class AddAlertIsJsonToRapnsNotifications < ActiveRecord::Migration
|
1
|
+
class AddAlertIsJsonToRapnsNotifications < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
add_column :rapns_notifications, :alert_is_json, :boolean, null: true, default: false
|
4
4
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class AddAppToRapns < ActiveRecord::Migration
|
1
|
+
class AddAppToRapns < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
add_column :rapns_notifications, :app, :string, null: true
|
4
4
|
add_column :rapns_feedback, :app, :string, null: true
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class AddFailAfterToRpushNotifications < ActiveRecord::Migration
|
1
|
+
class AddFailAfterToRpushNotifications < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
add_column :rpush_notifications, :fail_after, :timestamp, null: true
|
4
4
|
end
|
@@ -19,7 +19,7 @@
|
|
19
19
|
# approach. The constituent parts of this migration have been executed
|
20
20
|
# many times, by many people!
|
21
21
|
|
22
|
-
class AddRpush < ActiveRecord::Migration
|
22
|
+
class AddRpush < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
23
23
|
def self.migrations
|
24
24
|
[CreateRapnsNotifications, CreateRapnsFeedback,
|
25
25
|
AddAlertIsJsonToRapnsNotifications, AddAppToRapns,
|
@@ -41,7 +41,7 @@ class AddRpush < ActiveRecord::Migration
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
class CreateRapnsNotifications < ActiveRecord::Migration
|
44
|
+
class CreateRapnsNotifications < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
45
45
|
def self.up
|
46
46
|
create_table :rapns_notifications do |t|
|
47
47
|
t.integer :badge, null: true
|
@@ -71,7 +71,7 @@ class AddRpush < ActiveRecord::Migration
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
-
class CreateRapnsFeedback < ActiveRecord::Migration
|
74
|
+
class CreateRapnsFeedback < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
75
75
|
def self.up
|
76
76
|
create_table :rapns_feedback do |t|
|
77
77
|
t.string :device_token, null: false, limit: 64
|
@@ -90,7 +90,7 @@ class AddRpush < ActiveRecord::Migration
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
class AddAlertIsJsonToRapnsNotifications < ActiveRecord::Migration
|
93
|
+
class AddAlertIsJsonToRapnsNotifications < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
94
94
|
def self.up
|
95
95
|
add_column :rapns_notifications, :alert_is_json, :boolean, null: true, default: false
|
96
96
|
end
|
@@ -100,7 +100,7 @@ class AddRpush < ActiveRecord::Migration
|
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
-
class AddAppToRapns < ActiveRecord::Migration
|
103
|
+
class AddAppToRapns < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
104
104
|
def self.up
|
105
105
|
add_column :rapns_notifications, :app, :string, null: true
|
106
106
|
add_column :rapns_feedback, :app, :string, null: true
|
@@ -112,7 +112,7 @@ class AddRpush < ActiveRecord::Migration
|
|
112
112
|
end
|
113
113
|
end
|
114
114
|
|
115
|
-
class CreateRapnsApps < ActiveRecord::Migration
|
115
|
+
class CreateRapnsApps < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
116
116
|
def self.up
|
117
117
|
create_table :rapns_apps do |t|
|
118
118
|
t.string :key, null: false
|
@@ -129,7 +129,7 @@ class AddRpush < ActiveRecord::Migration
|
|
129
129
|
end
|
130
130
|
end
|
131
131
|
|
132
|
-
class AddGcm < ActiveRecord::Migration
|
132
|
+
class AddGcm < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
133
133
|
module Rapns
|
134
134
|
class App < ActiveRecord::Base
|
135
135
|
self.table_name = 'rapns_apps'
|
@@ -232,7 +232,7 @@ class AddRpush < ActiveRecord::Migration
|
|
232
232
|
end
|
233
233
|
end
|
234
234
|
|
235
|
-
class AddWpns < ActiveRecord::Migration
|
235
|
+
class AddWpns < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
236
236
|
module Rapns
|
237
237
|
class Notification < ActiveRecord::Base
|
238
238
|
self.table_name = 'rapns_notifications'
|
@@ -249,7 +249,7 @@ class AddRpush < ActiveRecord::Migration
|
|
249
249
|
end
|
250
250
|
end
|
251
251
|
|
252
|
-
class AddAdm < ActiveRecord::Migration
|
252
|
+
class AddAdm < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
253
253
|
module Rapns
|
254
254
|
class Notification < ActiveRecord::Base
|
255
255
|
self.table_name = 'rapns_notifications'
|
@@ -273,7 +273,7 @@ class AddRpush < ActiveRecord::Migration
|
|
273
273
|
end
|
274
274
|
end
|
275
275
|
|
276
|
-
class RenameRapnsToRpush < ActiveRecord::Migration
|
276
|
+
class RenameRapnsToRpush < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
277
277
|
module Rpush
|
278
278
|
class App < ActiveRecord::Base
|
279
279
|
self.table_name = 'rpush_apps'
|
@@ -337,7 +337,7 @@ class AddRpush < ActiveRecord::Migration
|
|
337
337
|
end
|
338
338
|
end
|
339
339
|
|
340
|
-
class AddFailAfterToRpushNotifications < ActiveRecord::Migration
|
340
|
+
class AddFailAfterToRpushNotifications < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
341
341
|
def self.up
|
342
342
|
add_column :rpush_notifications, :fail_after, :timestamp, null: true
|
343
343
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class CreateRapnsFeedback < ActiveRecord::Migration
|
1
|
+
class CreateRapnsFeedback < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
create_table :rapns_feedback do |t|
|
4
4
|
t.string :device_token, null: false, limit: 64
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class Rpush210Updates < ActiveRecord::Migration
|
1
|
+
class Rpush210Updates < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
add_column :rpush_notifications, :url_args, :text, null: true
|
4
4
|
add_column :rpush_notifications, :category, :string, null: true
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class Rpush270Updates < ActiveRecord::Migration
|
1
|
+
class Rpush270Updates < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
2
|
def self.up
|
3
3
|
change_column :rpush_notifications, :alert, :text
|
4
4
|
add_column :rpush_notifications, :notification, :text
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Rpush300Updates < ActiveRecord::VERSION::MAJOR >= 5 ? ActiveRecord::Migration[5.0] : ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
add_column :rpush_notifications, :mutable_content, :boolean, default: false
|
4
|
+
change_column :rpush_notifications, :sound, :string, default: nil
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.down
|
8
|
+
remove_column :rpush_notifications, :mutable_content
|
9
|
+
change_column :rpush_notifications, :sound, :string, default: 'default'
|
10
|
+
end
|
11
|
+
end
|
data/lib/rpush.rb
CHANGED
@@ -1,16 +1,9 @@
|
|
1
1
|
require 'logger'
|
2
2
|
require 'multi_json'
|
3
3
|
require 'active_support/all'
|
4
|
+
require 'net-http2'
|
4
5
|
|
5
|
-
|
6
|
-
def self.attr_accessible_available?
|
7
|
-
require 'rails'
|
8
|
-
rescue LoadError
|
9
|
-
false
|
10
|
-
else
|
11
|
-
::Rails::VERSION::STRING < '4' || defined?(::ActiveRecord::MassAssignmentSecurity)
|
12
|
-
end
|
13
|
-
end
|
6
|
+
require 'rails'
|
14
7
|
|
15
8
|
require 'rpush/version'
|
16
9
|
require 'rpush/cli'
|
data/lib/rpush/apns_feedback.rb
CHANGED
@@ -4,6 +4,10 @@ module Rpush
|
|
4
4
|
Rpush::Daemon.common_init
|
5
5
|
|
6
6
|
Rpush::Apns::App.all.each do |app|
|
7
|
+
# Redis stores every App type on the same namespace, hence the
|
8
|
+
# additional filtering
|
9
|
+
next unless app.service_name == 'apns'
|
10
|
+
|
7
11
|
receiver = Rpush::Daemon::Apns::FeedbackReceiver.new(app)
|
8
12
|
receiver.check_for_feedback
|
9
13
|
end
|
data/lib/rpush/cli.rb
CHANGED
@@ -77,7 +77,7 @@ module Rpush
|
|
77
77
|
Rails::Generators.invoke('rpush_migration', ['--force']) if install_migrations
|
78
78
|
|
79
79
|
puts "\n* #{ANSI.green { 'Next steps:' }}"
|
80
|
-
puts " - Run 'db:migrate'." if install_migrations
|
80
|
+
puts " - Run 'bundle exec rake db:migrate'." if install_migrations
|
81
81
|
puts " - Review and update your configuration in #{default_config_path}."
|
82
82
|
puts " - Create your first app, see https://github.com/rpush/rpush for examples."
|
83
83
|
puts " - Run 'rpush help' for commands and options."
|
@@ -153,7 +153,7 @@ module Rpush
|
|
153
153
|
end
|
154
154
|
|
155
155
|
def check_ruby_version
|
156
|
-
STDERR.puts(ANSI.yellow { 'WARNING: ' } + "You are using an old and unsupported version of Ruby.") if RUBY_VERSION
|
156
|
+
STDERR.puts(ANSI.yellow { 'WARNING: ' } + "You are using an old and unsupported version of Ruby.") if RUBY_VERSION < '2.2.2' && RUBY_ENGINE == 'ruby'
|
157
157
|
end
|
158
158
|
|
159
159
|
def underscore_option_names
|