notifiable-apns-grocer 0.12.0 → 0.12.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 +4 -4
- data/lib/notifiable/apns/grocer/stream.rb +26 -33
- data/lib/notifiable/apns/grocer/version.rb +1 -1
- data/spec/fixtures/apns-development.pem +61 -0
- data/spec/stream_spec.rb +2 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 313db5c0e717a058a8173db83e628916a1a84bf6
|
4
|
+
data.tar.gz: f66c47f5002e723404c901b50820c31af2c97e6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc8aec70091ccbba4094935e162fde56b6640293ad39b74dfa1b8864ae3a1c5276989d750f71ea23c15b4ed4706ba1c25d291e1cc8763f7818d9b6b7fd7c4dde
|
7
|
+
data.tar.gz: 1113d4fca3b006ed0b5ba8f40baf6fcf8c5cc1eb5d8ef0d95e9c79c288e9166a745f31a6cb0fc72d52cf1c3b585c8b0642800819a7d243339b365abdc3bcad96
|
@@ -8,32 +8,42 @@ module Notifiable
|
|
8
8
|
class Stream < Notifiable::NotifierBase
|
9
9
|
|
10
10
|
attr_accessor :certificate, :passphrase, :connection_pool_size, :connection_pool_timeout, :gateway_host, :gateway_port, :feedback_host, :feedback_port
|
11
|
-
|
12
|
-
def close
|
13
|
-
super
|
14
|
-
@grocer_pusher = nil
|
15
|
-
@grocer_feedback = nil
|
16
|
-
end
|
17
|
-
|
11
|
+
|
18
12
|
def gateway_host
|
19
13
|
@gateway_host || "gateway.push.apple.com"
|
20
14
|
end
|
21
|
-
|
15
|
+
|
22
16
|
def gateway_port
|
23
17
|
@gateway_port || 2195
|
24
18
|
end
|
25
|
-
|
19
|
+
|
26
20
|
def feedback_host
|
27
21
|
@gateway_host || "feedback.push.apple.com"
|
28
22
|
end
|
29
|
-
|
23
|
+
|
30
24
|
def feedback_port
|
31
25
|
@feedback_port || 2196
|
32
26
|
end
|
27
|
+
|
28
|
+
def connection_pool_size
|
29
|
+
@connection_pool_size || 10
|
30
|
+
end
|
31
|
+
|
32
|
+
def connection_pool_timeout
|
33
|
+
@connection_pool_timeout || 10
|
34
|
+
end
|
35
|
+
|
36
|
+
def close
|
37
|
+
super
|
38
|
+
@grocer_pusher = nil
|
39
|
+
@grocer_feedback = nil
|
40
|
+
end
|
33
41
|
|
34
42
|
protected
|
35
43
|
def enqueue(device_token, localized_notification)
|
36
44
|
|
45
|
+
raise "Certificate missing" if certificate.nil?
|
46
|
+
|
37
47
|
grocer_notification = ::Grocer::Notification.new(
|
38
48
|
device_token: device_token.token,
|
39
49
|
alert: localized_notification.message,
|
@@ -52,38 +62,21 @@ module Notifiable
|
|
52
62
|
process_feedback unless self.test_env?
|
53
63
|
end
|
54
64
|
|
55
|
-
private
|
56
|
-
# override getters with defaults
|
57
|
-
def sandbox
|
58
|
-
@sandbox || "0"
|
59
|
-
end
|
60
|
-
|
61
|
-
def connection_pool_size
|
62
|
-
@connection_pool_size || 10
|
63
|
-
end
|
64
|
-
|
65
|
-
def connection_pool_timeout
|
66
|
-
@connection_pool_timeout || 10
|
67
|
-
end
|
68
|
-
|
69
|
-
def sandbox?
|
70
|
-
sandbox.eql? "1"
|
71
|
-
end
|
72
|
-
|
65
|
+
private
|
73
66
|
# logic
|
74
67
|
def gateway_config
|
75
68
|
{
|
76
|
-
certificate:
|
77
|
-
passphrase:
|
78
|
-
gateway:
|
79
|
-
port:
|
69
|
+
certificate: certificate,
|
70
|
+
passphrase: passphrase,
|
71
|
+
gateway: gateway_host,
|
72
|
+
port: gateway_port,
|
80
73
|
retries: 3
|
81
74
|
}
|
82
75
|
end
|
83
76
|
|
84
77
|
def feedback_config
|
85
78
|
{
|
86
|
-
certificate:
|
79
|
+
certificate: certificate,
|
87
80
|
passphrase: self.passphrase,
|
88
81
|
gateway: self.feedback_host,
|
89
82
|
port: self.feedback_port,
|
@@ -0,0 +1,61 @@
|
|
1
|
+
Bag Attributes
|
2
|
+
friendlyName: Fake APNs Provider Certificate
|
3
|
+
localKeyID: C0 9A 0E C0 77 F5 7A A4 71 1B 07 9D 10 0E 2D FB 8C B5 62 BC
|
4
|
+
subject=/CN=Fake APNs Provider Certificate/O=Fake Provider/OU=Fake Notification Sending Division/ST=Fake Washington/C=US/L=Fake Seattle/emailAddress=info@wavii.com
|
5
|
+
issuer=/CN=Fake APNs Certificate Authority/O=Fake Apple/OU=Fake Certificate Signing Division/ST=Fake California/C=US/L=Fake Cupertino/emailAddress=info@wavii.com
|
6
|
+
-----BEGIN CERTIFICATE-----
|
7
|
+
MIIENDCCAxygAwIBAgIBAjALBgkqhkiG9w0BAQswgcoxKDAmBgNVBAMMH0Zha2Ug
|
8
|
+
QVBOcyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxEzARBgNVBAoMCkZha2UgQXBwbGUx
|
9
|
+
KjAoBgNVBAsMIUZha2UgQ2VydGlmaWNhdGUgU2lnbmluZyBEaXZpc2lvbjEYMBYG
|
10
|
+
A1UECAwPRmFrZSBDYWxpZm9ybmlhMQswCQYDVQQGEwJVUzEXMBUGA1UEBwwORmFr
|
11
|
+
ZSBDdXBlcnRpbm8xHTAbBgkqhkiG9w0BCQEWDmluZm9Ad2F2aWkuY29tMB4XDTEy
|
12
|
+
MDQwNDIwNTYzNloXDTEzMDQwNDIwNTYzNlowgcsxJzAlBgNVBAMMHkZha2UgQVBO
|
13
|
+
cyBQcm92aWRlciBDZXJ0aWZpY2F0ZTEWMBQGA1UECgwNRmFrZSBQcm92aWRlcjEr
|
14
|
+
MCkGA1UECwwiRmFrZSBOb3RpZmljYXRpb24gU2VuZGluZyBEaXZpc2lvbjEYMBYG
|
15
|
+
A1UECAwPRmFrZSBXYXNoaW5ndG9uMQswCQYDVQQGEwJVUzEVMBMGA1UEBwwMRmFr
|
16
|
+
ZSBTZWF0dGxlMR0wGwYJKoZIhvcNAQkBFg5pbmZvQHdhdmlpLmNvbTCCASIwDQYJ
|
17
|
+
KoZIhvcNAQEBBQADggEPADCCAQoCggEBALeeRtyoGCoyTZPLr4mjbK8nQpbwcf6/
|
18
|
+
2GlkqDDaYy17kFjZXA3ZrdPncWnC1gA+93ZAtvy/a1PdSyKMNrTdkqmiId4EzRl5
|
19
|
+
oEFVAEXYSy5DmL78KiMYfmhGXtusq+mj0HvsBHRRsTESqmRhwHj8Th4wYBp6w4jr
|
20
|
+
UmFDIP2FuTqck1WgtgsVQMgVgrgyUUDCzejMfGxBkvavP9TRmYqlZPqRkadMoads
|
21
|
+
T+JTA8JAa7srtQVmdfCg0PvIKZxegIAiGjdoO0ZoWSlS2fWFzDKfsIybXbqinO/s
|
22
|
+
Og5C9ITAYR5+A/pBYXv+R3MOvYLxZ4SgHFOqs4J0oF26324jovt1FWkCAwEAAaMk
|
23
|
+
MCIwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEB
|
24
|
+
CwUAA4IBAQCfsBLbFlCfMFA1t5o4C1QWMA3tfM+MyGUDSJ4qIWFF1/zBQl8bSTc/
|
25
|
+
XkUaNZ42R/NZ+anwyPlYNK/N7JBC5nJiIDkn+SF/ifXUMZcJ6ryWwEIuM9oPf+yM
|
26
|
+
LABztG23gD6RbFw5n3PhO2IsO8dKa2HS4yxBPWAJuOnn9A+H87G+Vy7f7hc9ZgR+
|
27
|
+
BmUNVj9Wm+NBrZrWU431HbLUyi2udD2vDfXk2LopBUN05iOD7BqHEUbdeQ5bPxe5
|
28
|
+
7smdpmEV3QrbpfCfWtoV28OJ/EA0qB0GwihJ3Pkx3V7SaASOwEwhhiwHQDPN/Ksy
|
29
|
+
lG47dCmL1Q47TN9Rzv7LnCSuKXuEycxo
|
30
|
+
-----END CERTIFICATE-----
|
31
|
+
Bag Attributes
|
32
|
+
friendlyName: Fake APNs Provider Certificate
|
33
|
+
localKeyID: C0 9A 0E C0 77 F5 7A A4 71 1B 07 9D 10 0E 2D FB 8C B5 62 BC
|
34
|
+
Key Attributes: <No Attributes>
|
35
|
+
-----BEGIN RSA PRIVATE KEY-----
|
36
|
+
MIIEowIBAAKCAQEAt55G3KgYKjJNk8uviaNsrydClvBx/r/YaWSoMNpjLXuQWNlc
|
37
|
+
Ddmt0+dxacLWAD73dkC2/L9rU91LIow2tN2SqaIh3gTNGXmgQVUARdhLLkOYvvwq
|
38
|
+
Ixh+aEZe26yr6aPQe+wEdFGxMRKqZGHAePxOHjBgGnrDiOtSYUMg/YW5OpyTVaC2
|
39
|
+
CxVAyBWCuDJRQMLN6Mx8bEGS9q8/1NGZiqVk+pGRp0yhp2xP4lMDwkBruyu1BWZ1
|
40
|
+
8KDQ+8gpnF6AgCIaN2g7RmhZKVLZ9YXMMp+wjJtduqKc7+w6DkL0hMBhHn4D+kFh
|
41
|
+
e/5Hcw69gvFnhKAcU6qzgnSgXbrfbiOi+3UVaQIDAQABAoIBAAKv1zudXhUn/Uif
|
42
|
+
X2c1M/7wJSJOTGy84+7O4UMtvuvIdhlGvPka6VdDeL5icn04bqiVU9go+OoWP+Y2
|
43
|
+
hQpqf53p2HMGQPYReI3cL4/WFWuM46xPxlITJq5h8TtnsHBPzFoz3vDQzTX5nvKv
|
44
|
+
F4DtuDrq3E0m5LuZLfBsagwrq8U2xPzIQaRVfl+BGATOFBa30hSwNByqMHW3AuMd
|
45
|
+
5qZQAAXa5C2OhWTEV5sfqQT3hJN/fHgn2gSOi3R3CW8F9yEx0M4ECR+kYb0NdYt/
|
46
|
+
FczNtgnrneK60yhQnOkX19Tr5MGvj44GryLndxAkrFTp5ipfBm+Gc26XKNkfoWJ+
|
47
|
+
ovzT1n0CgYEA2Q5umhJudO3W13WsKOxoU7ErtewemzDpYb0CrxdI9/i9Fxi1QV7C
|
48
|
+
+JSSf0XFKu+nW50D8jMJ60WwU4WX4v8DoG3M0vrXiJ0CZyIClFWgvk+VWi0hGh9b
|
49
|
+
e3PcjNMIKQNK2FyOnOwUnL0DerNFMtYD1kLkDS5CsjGY4VYGPVFRx1sCgYEA2JAB
|
50
|
+
rdUcmN3bfixXeHedRGzw6YFkEbEXqKt8Oa0dVlsDL20JX/Cj5xAESIXyswsIfuAo
|
51
|
+
Rjv4mI/J6lxXhoEiNo/9VsNJ+QH77zv8mVPqs1Z5pxjtp1lNag9jOMZZAX6vgJ1e
|
52
|
+
Glx/stLxxkIhX5aI1ppIZXNFCIY7e8qx9OPYNYsCgYBAw/imimdhBnK7mYYEM/4x
|
53
|
+
MsVLJChBwEdy/XXmjrkcHKE3Wg0Dc2YTzCkmRsg9NoMmZ+R8iVQlWobxdQRMHDGV
|
54
|
+
1g1uyqAzSD4mTdSdNCuhfZef76VX6RFf9cNSVcmyiyPzCTMYiazg09lM7F7yez9r
|
55
|
+
2Eu5zxrhlsD6Q7Pa6f/PzwKBgQCitPd9+mrk83MQxhHmAcCYA12xorRjknFbGZRY
|
56
|
+
5Rbwpaqr/DkZ6vvKA7+kGXdyS6zTXmkD89TgEtA6k6xy8xyYb/CAOnOecX4ujRxI
|
57
|
+
usLQgP0frVwI6tB+ChebNXLz65HCiPmFxs9utIxQT6kxXzFqQzp3dnZ8ZBXW+UBg
|
58
|
+
5Lqx5wKBgFIi2DP5/cF5nUDqOtiQTzl0MeJWW3w3UBS9jQF7Cx00YyLSqIF1batv
|
59
|
+
Zk0Yq5w/2oh9C5EDrf8eyCYfK3iU2Ij4Jy6N6zITjRhW/kxxZigjmcTb/Tsme2Xh
|
60
|
+
IFo5RoAfOV1dPiXM4oqZFPNmppAxiZH2ohEmo593DHYosQHMjXYG
|
61
|
+
-----END RSA PRIVATE KEY-----
|
data/spec/stream_spec.rb
CHANGED
@@ -12,7 +12,8 @@ describe Notifiable::Apns::Grocer::Stream do
|
|
12
12
|
:gateway_host => "localhost",
|
13
13
|
:gateway_port => 2195,
|
14
14
|
:feedback_host => "localhost",
|
15
|
-
:feedback_port => 2196
|
15
|
+
:feedback_port => 2196,
|
16
|
+
:certificate => File.join(File.dirname(__FILE__), "fixtures", "apns-development.pem")}}
|
16
17
|
end
|
17
18
|
|
18
19
|
it "sends a single notification" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: notifiable-apns-grocer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.
|
4
|
+
version: 0.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kamil Kocemba
|
@@ -201,6 +201,7 @@ files:
|
|
201
201
|
- lib/notifiable/apns/grocer/version.rb
|
202
202
|
- lib/tasks/load_test.rake
|
203
203
|
- notifiable-apns-grocer.gemspec
|
204
|
+
- spec/fixtures/apns-development.pem
|
204
205
|
- spec/spec_helper.rb
|
205
206
|
- spec/stream_spec.rb
|
206
207
|
- spec/support/db/migrate/20131210115648_create_notifiable_apps.rb
|
@@ -233,6 +234,7 @@ signing_key:
|
|
233
234
|
specification_version: 4
|
234
235
|
summary: Plugin to use Grocer for APNS with Notifiable-Rails
|
235
236
|
test_files:
|
237
|
+
- spec/fixtures/apns-development.pem
|
236
238
|
- spec/spec_helper.rb
|
237
239
|
- spec/stream_spec.rb
|
238
240
|
- spec/support/db/migrate/20131210115648_create_notifiable_apps.rb
|