notifiable-apns-grocer 0.12.0 → 0.12.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|