j7w1 0.0.13 → 0.0.14
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/README.md +4 -2
- data/lib/j7w1/configuration.rb +15 -7
- data/lib/j7w1/sns_push_client.rb +40 -8
- data/lib/j7w1/util.rb +2 -1
- data/lib/j7w1/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 173f6f7c6ae362a1a8cf8068f1c12a2c949c7533
|
4
|
+
data.tar.gz: 252cccea60908318b7a567df86158223c89a2c1a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca59c342c914b49279d5a115d2880c890175324717068baec8695ee8d43c5fb996ab1935836fcfdf94ba8f472625364d2687b05d39403f8263d1f2a12bf73b48
|
7
|
+
data.tar.gz: a4d32b1d44c5a03994b10ca4e19be3b3b8412bd4092478dc9703ac3bc3376facd96b03f97d2aa49c6397c65d233142c1a26d312c75c259fe7947ad4b47d15621
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# J7W1
|
2
2
|
|
3
|
-
A gem to send the push notification to mobile app via Amazon Simple Notification Service (SNS). Currently supports only iOS platform
|
3
|
+
A gem to send the push notification to mobile app via Amazon Simple Notification Service (SNS). Currently supports only iOS platform at production quality. The support for Android is experimentally implemented.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -39,6 +39,8 @@ Configuration is expected to have the structure as below:
|
|
39
39
|
app_endpoint:
|
40
40
|
ios:
|
41
41
|
arn: "<The ARN of your app.>"
|
42
|
+
android:
|
43
|
+
arn: "<The ARN of your android app.>"
|
42
44
|
account:
|
43
45
|
access_key_id: "<Your Access Key>"
|
44
46
|
secret_access_key: "<Your Secret Key>"
|
@@ -81,4 +83,4 @@ The generator j7w1:model must be useful for you. It provides the items below:
|
|
81
83
|
|
82
84
|
## Author
|
83
85
|
|
84
|
-
TOYODA Naoto https://github.com/condor
|
86
|
+
TOYODA Naoto https://github.com/condor
|
data/lib/j7w1/configuration.rb
CHANGED
@@ -2,13 +2,19 @@ module J7W1
|
|
2
2
|
class Configuration
|
3
3
|
include J7W1::Util
|
4
4
|
|
5
|
+
module MobileEndpoint
|
6
|
+
def arn
|
7
|
+
self[:arn]
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
5
11
|
module IOSEndpoint
|
6
|
-
def
|
7
|
-
|
12
|
+
def self.extended(obj)
|
13
|
+
obj.__send__ :extend, MobileEndpoint
|
8
14
|
end
|
9
15
|
|
10
|
-
def
|
11
|
-
|
16
|
+
def sandbox?
|
17
|
+
@sandbox
|
12
18
|
end
|
13
19
|
|
14
20
|
def confirm_sandbox
|
@@ -17,8 +23,8 @@ module J7W1
|
|
17
23
|
end
|
18
24
|
|
19
25
|
module AndroidEndpoint
|
20
|
-
def
|
21
|
-
|
26
|
+
def self.extended(obj)
|
27
|
+
obj.__send__ :extend, MobileEndpoint
|
22
28
|
end
|
23
29
|
end
|
24
30
|
|
@@ -34,7 +40,9 @@ module J7W1
|
|
34
40
|
ios_endpoint.extend(IOSEndpoint)
|
35
41
|
ios_endpoint.confirm_sandbox
|
36
42
|
end
|
37
|
-
|
43
|
+
if android_endpoint
|
44
|
+
android_endpoint.extend(AndroidEndpoint)
|
45
|
+
end
|
38
46
|
account.extend(Account)
|
39
47
|
end
|
40
48
|
|
data/lib/j7w1/sns_push_client.rb
CHANGED
@@ -4,6 +4,18 @@ module J7W1
|
|
4
4
|
AWS::SNS.new configuration.account
|
5
5
|
end
|
6
6
|
|
7
|
+
APS_TABLE = {
|
8
|
+
message: :alert,
|
9
|
+
badge: :badge,
|
10
|
+
sound: :sound,
|
11
|
+
}.freeze
|
12
|
+
|
13
|
+
ANDROID_TABLE = {
|
14
|
+
message: :message,
|
15
|
+
badge: :badge,
|
16
|
+
sound: :sound,
|
17
|
+
}.freeze
|
18
|
+
|
7
19
|
def create_ios_application(name, certs, private_key, options)
|
8
20
|
sandbox = !(options[:sandbox] == false)
|
9
21
|
configuration = options[:sns_configuration] || J7W1.configuration
|
@@ -39,8 +51,16 @@ module J7W1
|
|
39
51
|
sns_client ||= create_sns_client(sns_configuration || J7W1.configuration)
|
40
52
|
|
41
53
|
sns_config = J7W1.configuration
|
42
|
-
|
43
|
-
|
54
|
+
|
55
|
+
app_arn =
|
56
|
+
case platform
|
57
|
+
when :ios
|
58
|
+
sns_config.ios_endpoint.arn
|
59
|
+
when :android
|
60
|
+
sns_config.android_endpoint.arn
|
61
|
+
else
|
62
|
+
|
63
|
+
end
|
44
64
|
|
45
65
|
endpoint =
|
46
66
|
sns_client.client.create_platform_endpoint(
|
@@ -70,7 +90,7 @@ module J7W1
|
|
70
90
|
sns_client = options[:sns_client]
|
71
91
|
|
72
92
|
message_value = {}
|
73
|
-
message_value.merge!(
|
93
|
+
message_value.merge!(message: message) unless message.blank?
|
74
94
|
message_value.merge!(badge: badge) unless badge.blank?
|
75
95
|
message_value.merge!(sound: sound) unless sound.blank?
|
76
96
|
|
@@ -86,10 +106,10 @@ module J7W1
|
|
86
106
|
|
87
107
|
private
|
88
108
|
def payload_for(message_value, platform)
|
89
|
-
case platform
|
90
|
-
when
|
109
|
+
case platform.to_sym
|
110
|
+
when :ios
|
91
111
|
ios_payload_for(message_value)
|
92
|
-
when
|
112
|
+
when :android
|
93
113
|
android_payload_for(message_value)
|
94
114
|
end
|
95
115
|
end
|
@@ -97,11 +117,23 @@ module J7W1
|
|
97
117
|
def ios_payload_for(message_value)
|
98
118
|
prefix = J7W1.configuration.ios_endpoint.sandbox? ?
|
99
119
|
:APNS_SANDBOX : :APNS
|
100
|
-
|
120
|
+
|
121
|
+
{prefix => {aps: message_content_with_table(message_value, APS_TABLE)}.to_json}
|
101
122
|
end
|
102
123
|
|
103
124
|
def android_payload_for(message_value)
|
104
|
-
|
125
|
+
{
|
126
|
+
gcm: {
|
127
|
+
data: message_content_with_table(message_value, ANDROID_TABLE)
|
128
|
+
}.to_json
|
129
|
+
}
|
130
|
+
end
|
131
|
+
|
132
|
+
def message_content_with_table(content, table)
|
133
|
+
table.keys.reduce({}) do |h, key|
|
134
|
+
h[table[key]] = content[key]
|
135
|
+
h
|
136
|
+
end
|
105
137
|
end
|
106
138
|
|
107
139
|
def content_from(argument)
|
data/lib/j7w1/util.rb
CHANGED
data/lib/j7w1/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: j7w1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- condor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|