jpush_api_ruby_client 0.0.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.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +45 -0
  6. data/Rakefile +1 -0
  7. data/doc/Gemfile.html +105 -0
  8. data/doc/JPushApiRubyClient/Client.html +774 -0
  9. data/doc/JPushApiRubyClient/MsgType.html +159 -0
  10. data/doc/JPushApiRubyClient/PlatformType.html +164 -0
  11. data/doc/JPushApiRubyClient/ReceiverType.html +169 -0
  12. data/doc/JPushApiRubyClient.html +166 -0
  13. data/doc/LICENSE_txt.html +121 -0
  14. data/doc/Rakefile.html +101 -0
  15. data/doc/created.rid +15 -0
  16. data/doc/doc/created_rid.html +99 -0
  17. data/doc/images/add.png +0 -0
  18. data/doc/images/arrow_up.png +0 -0
  19. data/doc/images/brick.png +0 -0
  20. data/doc/images/brick_link.png +0 -0
  21. data/doc/images/bug.png +0 -0
  22. data/doc/images/bullet_black.png +0 -0
  23. data/doc/images/bullet_toggle_minus.png +0 -0
  24. data/doc/images/bullet_toggle_plus.png +0 -0
  25. data/doc/images/date.png +0 -0
  26. data/doc/images/delete.png +0 -0
  27. data/doc/images/find.png +0 -0
  28. data/doc/images/loadingAnimation.gif +0 -0
  29. data/doc/images/macFFBgHack.png +0 -0
  30. data/doc/images/package.png +0 -0
  31. data/doc/images/page_green.png +0 -0
  32. data/doc/images/page_white_text.png +0 -0
  33. data/doc/images/page_white_width.png +0 -0
  34. data/doc/images/plugin.png +0 -0
  35. data/doc/images/ruby.png +0 -0
  36. data/doc/images/tag_blue.png +0 -0
  37. data/doc/images/tag_green.png +0 -0
  38. data/doc/images/transparent.png +0 -0
  39. data/doc/images/wrench.png +0 -0
  40. data/doc/images/wrench_orange.png +0 -0
  41. data/doc/images/zoom.png +0 -0
  42. data/doc/index.html +96 -0
  43. data/doc/jpush_api_ruby_client_gemspec.html +126 -0
  44. data/doc/js/darkfish.js +155 -0
  45. data/doc/js/jquery.js +18 -0
  46. data/doc/js/navigation.js +142 -0
  47. data/doc/js/search.js +94 -0
  48. data/doc/js/search_index.js +1 -0
  49. data/doc/js/searcher.js +228 -0
  50. data/doc/rdoc.css +595 -0
  51. data/doc/table_of_contents.html +99 -0
  52. data/example/client_example.rb +66 -0
  53. data/jpush_api_ruby_client.gemspec +25 -0
  54. data/lib/jpush_api_ruby_client/client.rb +233 -0
  55. data/lib/jpush_api_ruby_client/msg_type.rb +12 -0
  56. data/lib/jpush_api_ruby_client/platform_type.rb +14 -0
  57. data/lib/jpush_api_ruby_client/receiver_type.rb +16 -0
  58. data/lib/jpush_api_ruby_client/version.rb +3 -0
  59. data/lib/jpush_api_ruby_client.rb +8 -0
  60. metadata +158 -0
@@ -0,0 +1,66 @@
1
+ require 'jpush_api_ruby_client'
2
+
3
+ class ClientExample
4
+
5
+ app_key = '3af172b794896c3e1de43fe7' #必填,例如466f7032ac604e02fb7bda89
6
+ master_secret = '57c45646c772983eb0e7c455' #必填,每个应用都对应一个masterSecret
7
+
8
+ # 保存离线的时长。秒为单位。最多支持10天(864000秒)。
9
+ # 0 表示该消息不保存离线。即:用户在线马上发出,当前不在线用户将不会收到此消息。
10
+ # 此参数不设置则表示默认,默认为保存1天的离线消息(86400秒)。
11
+
12
+ time_to_live = 60 * 60 * 24
13
+
14
+ #
15
+ # Example1: 初始化,默认发送给android和ios,同时设置离线消息存活时间
16
+ # jpush_client = JPushApiRubyClient::Client.new(app_key, masterSecret, 'time_to_live' => time_to_live)
17
+ #
18
+ # Example2: 只发送给android
19
+ # jpush_client = JPushApiRubyClient::Client.new(app_key, master_secret, 'platform' => JPushApiRubyClient::PlatformType::ANDROID);
20
+ #
21
+ # Example3: 只发送给IOS
22
+ # jpush_client = JPushApiRubyClient::Client.new(app_key, master_secret, 'platform' => JPushApiRubyClient::PlatformType::IOS);
23
+ #
24
+ # Example4: 只发送给android,同时设置离线消息存活时间
25
+ # jpush_client =JPushApiRubyClient::Client.new(app_key, master_secret, 'time_to_live' => time_to_live, 'platform' => JPushApiRubyClient::PlatformType::ANDROID);
26
+ #
27
+ #Example5: 使用缺省值发送,默认 time_to_live 为保存1天的离线消息 ,发送给IOS,android两个平台
28
+ # jpush_client = JPushApiRubyClient::Client.new(app_key, master_secret)
29
+ #
30
+
31
+ jpush_client = JPushApiRubyClient::Client.new(app_key, master_secret,'platform' => JPushApiRubyClient::PlatformType::BOTH)
32
+
33
+ #jpush_client.enable_ssl(true) 是否启用https请求,缺省false
34
+
35
+
36
+ send_no = jpush_client.generate_send_no
37
+ msg_title = 'JPushApiRubyClient实例'
38
+
39
+ msg_content = '根据 appkey 发送广播通知'
40
+ puts send_result = jpush_client.send_notification_with_appkey(send_no, msg_title, msg_content,'extras' => {'key1'=>'value1','key2' => 'value2'})
41
+
42
+ msg_content = '根据 tag 发送通知'
43
+ puts send_result = jpush_client.send_notification_with_tag(send_no, 'ouyang', msg_title, msg_content)
44
+
45
+ msg_content = '根据 alias 发送通知'
46
+ puts send_result = jpush_client.send_notification_with_alias(send_no, '', msg_title, msg_content)
47
+
48
+ msg_content = '根据 imei 发送通知'
49
+ puts send_result = jpush_client.send_notification_with_imei(send_no, '', msg_title, msg_content)
50
+
51
+
52
+ msg_content = '根据 appkey 发送自定义消息'
53
+ puts send_result = jpush_client.send_message_with_appkey(send_no, msg_title, msg_content,'extras' => {'key1'=>'value1','key2' => 'value2'})
54
+
55
+ msg_content = '根据 tag 发送自定义消息'
56
+ puts send_result = jpush_client.send_message_with_alias(send_no, '', msg_title, msg_content)
57
+
58
+ msg_content = '根据 alias 发送自定义消息'
59
+ puts send_result = jpush_client.send_message_with_tag(send_no, '', msg_title, msg_content)
60
+
61
+ msg_content = '根据 imei 发送自定义消息'
62
+ puts send_result = jpush_client.send_message_with_imei(send_no, '', msg_title, msg_content)
63
+
64
+
65
+ end
66
+
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "jpush_api_ruby_client/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "jpush_api_ruby_client"
8
+ spec.version = JPushApiRubyClient::VERSION
9
+ spec.authors = ['Xian OuYang']
10
+ spec.email = ['suport@jpush.cn']
11
+ spec.description = "provide a ruby api gem for jpush https://www.jpush.cn"
12
+ spec.summary = "a ruby api client gem for jpush"
13
+ spec.homepage = "https://github.com/aaron-codes/jpush-api-ruby-client"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec", "~> 2.6"
24
+ spec.add_runtime_dependency "rest-client","~> 1.6.7"
25
+ end
@@ -0,0 +1,233 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+
4
+ module JPushApiRubyClient
5
+
6
+ # HTTP
7
+ HTTP_JPUSH_API_URL = 'http://api.jpush.cn:8800/v2/push'
8
+ # HTTPS
9
+ HTTPS_JPUSH_API_URL = "https://api.jpush.cn:443/v2/push"
10
+
11
+ class Client
12
+ include PlatformType, MsgType, ReceiverType
13
+ attr_accessor :app_key, :master_secret, :https, :time_to_live, :platform
14
+
15
+ =begin
16
+ * @param [String] app_key
17
+ * @param [String] master_secret
18
+ * @param [Hash] opts opts可选参数可包含time_to_live、platform
19
+ =end
20
+ def initialize(app_key, master_secret, opts ={}, &block)
21
+ @app_key = app_key
22
+ @master_secret = master_secret
23
+ @time_to_live = opts['time_to_live'] || 86400
24
+ @platform = opts['platform'] || PlatformType::BOTH
25
+ end
26
+
27
+ =begin
28
+ * 当前时间戳生成send_no
29
+ * @return [Integer]
30
+ =end
31
+ def generate_send_no
32
+ Integer(Time.new)
33
+ end
34
+
35
+ =begin
36
+ * 是否启用https ssl连接,缺省false
37
+ * @param [Object] true or false
38
+ =end
39
+ def enable_ssl(https = false)
40
+ @https = https
41
+ end
42
+
43
+ =begin
44
+ * 发送使用 appkey 推送的自定义消息
45
+ * @param [Integer] send_no
46
+ * @param [String] msg_title
47
+ * @param [String] msg_content
48
+ * @param [Hash] opts opts可选参数包含 extras、override_msg_id
49
+ * @return [Hash] sendno、msg_id、errcode、errmsg
50
+ =end
51
+ def send_message_with_appkey(send_no, msg_title, msg_content, opts = {})
52
+ receiver = {:receiver_type => ReceiverType::BROADCAST}
53
+ send_custom_message(send_no, msg_title, msg_content, receiver, opts)
54
+ end
55
+
56
+ =begin
57
+ * 发送标签带推送的自定义消息
58
+ * @param [Integer] send_no
59
+ * @param [String] tag
60
+ * @param [String] msg_title
61
+ * @param [String] msg_content
62
+ * @param [Hash] opts opts参数可包含 extras、override_msg_id
63
+ * @return [Hash] sendno、msg_id、errcode、errmsg
64
+ =end
65
+ def send_message_with_tag(send_no, tag, msg_title, msg_content, opts = {})
66
+ receiver = {:receiver_type => ReceiverType::TAG,
67
+ :receiver_value => tag}
68
+ send_custom_message(send_no, msg_title, msg_content, receiver, opts)
69
+ end
70
+
71
+ =begin
72
+ * 发送带别名推送的自定义消息
73
+ * @param [Integer] send_no
74
+ * @param [String] alias_
75
+ * @param [String] msg_title
76
+ * @param [String] msg_content
77
+ * @param [Hash] opts opts参数可包含 extras、override_msg_id
78
+ * @return [Hash] sendno、msg_id、errcode、errmsg
79
+ =end
80
+ def send_message_with_alias(send_no, alias_, msg_title, msg_content, opts = {})
81
+ receiver = {:receiver_type => ReceiverType::ALIAS,
82
+ :receiver_value => alias_}
83
+ send_custom_message(send_no, msg_title, msg_content, receiver, opts)
84
+ end
85
+
86
+ =begin
87
+ * 发送带 imei 推送的自定义消息
88
+ * @param [Integer] send_no
89
+ * @param [String] imei
90
+ * @param [String] msg_title
91
+ * @param [String] msg_content
92
+ * @param [Hash] opts opts参数可包含 extras、override_msg_id
93
+ * @return [Hash] sendno、msg_id、errcode、errmsg
94
+ =end
95
+ def send_message_with_imei(send_no, imei, msg_title, msg_content, opts = {})
96
+ receiver = {:receiver_type => ReceiverType::IMEI,
97
+ :receiver_value => imei}
98
+ send_custom_message(send_no, msg_title, msg_content, receiver, opts)
99
+ end
100
+
101
+ =begin
102
+ * 发送使用 appkey 推送的通知
103
+ * @param [Integer] send_no
104
+ * @param [String] msg_title
105
+ * @param [String] msg_content
106
+ * @param [Hash] opts opts参数可包含 builder_id 、extras 、override_msg_id
107
+ * @return [Hash] sendno、msg_id、errcode、errmsg
108
+ =end
109
+ def send_notification_with_appkey(send_no, msg_title, msg_content, opts = {})
110
+ receiver = {:receiver_type => ReceiverType::BROADCAST,
111
+ :receiver_value => ''}
112
+ send_notification(send_no, msg_title, msg_content, receiver, opts)
113
+ end
114
+
115
+ =begin
116
+ * 发送带标签推送的通知
117
+ * @param [Integer] send_no
118
+ * @param [String] tag
119
+ * @param [String] msg_title
120
+ * @param [String] msg_content
121
+ * @param [Hash] opts opts参数可包含 builder_id 、extras、override_msg_id
122
+ * @return [Hash] sendno、msg_id、errcode、errmsg
123
+ =end
124
+ def send_notification_with_tag(send_no, tag, msg_title, msg_content, opts = {})
125
+ receiver = {:receiver_type => ReceiverType::TAG,
126
+ :receiver_value => tag}
127
+ send_notification(send_no, msg_title, msg_content, receiver, opts)
128
+ end
129
+
130
+ =begin
131
+ * 发送带别名推送的通知
132
+ * @param [Integer] send_no
133
+ * @param [String] alias_
134
+ * @param [String] msg_title
135
+ * @param [String] msg_content
136
+ * @param [Hash] opts opts参数可包含builder_id 、extras、override_msg_id
137
+ * @return [Hash] sendno、msg_id、errcode、errmsg
138
+ =end
139
+ def send_notification_with_alias(send_no, alias_, msg_title, msg_content, opts = {})
140
+ receiver = {:receiver_type => ReceiverType::ALIAS,
141
+ :receiver_value => alias_}
142
+ send_notification(send_no, msg_title, msg_content, receiver, opts)
143
+ end
144
+
145
+ =begin
146
+ * 发送带IMEI号推送的通知
147
+ * @param [Integer] send_no
148
+ * @param [String] imei
149
+ * @param [String] msg_title
150
+ * @param [String] msg_content
151
+ * @param [Hash] opts opts参数可包含 builder_id、extras、override_msg_id
152
+ * @return [Hash] sendno、msg_id、errcode、errmsg
153
+ =end
154
+ def send_notification_with_imei(send_no, imei, msg_title, msg_content, opts = {})
155
+ receiver = {:receiver_type => ReceiverType::IMEI,
156
+ :receiver_value => imei}
157
+ send_notification(send_no, msg_title, msg_content, receiver, opts)
158
+ end
159
+
160
+ private
161
+
162
+ def send_notification(send_no, msg_title, msg_content, receiver, opts)
163
+ msg_body = {:n_content => msg_content,
164
+ :n_title => msg_title,
165
+ :n_builder_id => opts['builder_id'] || 0
166
+ }
167
+ msg_body[:n_extras] = opts['extras'] if opts.has_key?('extras')
168
+
169
+ msg = {:msg_type => MsgType::NOTIFICATION,
170
+ :msg_content => msg_body,
171
+ :platform => platform,
172
+ :time_to_live => time_to_live
173
+ }
174
+ msg[:override_msg_id] = opts['override_msg_id'] if opts.has_key?('override_msg_id')
175
+ send_message(send_no, msg, receiver)
176
+ end
177
+
178
+ def send_custom_message(send_no, msg_title, msg_content, receiver, opts)
179
+ msg_body = {:message => msg_content,
180
+ :title => msg_title
181
+ }
182
+ msg_body[:extras] = opts['extras'] if opts.has_key?('extras')
183
+
184
+ msg = {:msg_type => MsgType::MESSAGE,
185
+ :msg_content => msg_body,
186
+ :platform => platform,
187
+ :time_to_live => time_to_live
188
+ }
189
+ msg[:override_msg_id] = opts['override_msg_id'] if msg.has_key?('override_msg_id')
190
+
191
+ send_message(send_no, msg, receiver)
192
+ end
193
+
194
+ # MD5 secret
195
+
196
+ def build_verification(send_no, receiver_type, receiver_value, master_secret)
197
+ verification_code = "#{send_no}#{receiver_type}#{receiver_value}#{master_secret}"
198
+ Digest::MD5.hexdigest(verification_code)
199
+ end
200
+
201
+ def send_message(send_no, msg, receiver, options={})
202
+ api_url = https == true ? HTTPS_JPUSH_API_URL : HTTP_JPUSH_API_URL
203
+ post_body = {}
204
+ post_body[:app_key] = app_key
205
+ post_body[:sendno] = send_no
206
+ post_body[:receiver_type] = receiver[:receiver_type]
207
+ post_body[:receiver_value] = receiver[:receiver_value] if receiver.has_key?(:receiver_value)
208
+
209
+ post_body[:verification_code] = build_verification(send_no,
210
+ receiver[:receiver_type],
211
+ receiver[:receiver_value] || '',
212
+ master_secret)
213
+ post_body[:msg_type] = msg[:msg_type]
214
+ post_body[:msg_content] = JSON.generate(msg[:msg_content])
215
+ post_body[:platform] = msg[:platform]
216
+ post_body[:time_to_live] = msg[:time_to_live]
217
+ post_body[:override_msg_id] = msg[:override_msg_id] if msg.has_key?(:override_msg_id)
218
+
219
+ post_body.merge!(options)
220
+ post_jpush_api(api_url, post_body)
221
+ end
222
+
223
+ # POST JPush API
224
+ def post_jpush_api(api_url, post_body)
225
+ response_msg = RestClient.post(
226
+ api_url,
227
+ post_body,
228
+ content_type: "application/x-www-form-urlencoded",
229
+ accept: :json)
230
+ JSON.parse(response_msg)
231
+ end
232
+ end
233
+ end
@@ -0,0 +1,12 @@
1
+ module JPushApiRubyClient
2
+ =begin
3
+ * 消息类型
4
+ =end
5
+ module MsgType
6
+
7
+ # 通知
8
+ NOTIFICATION = 1
9
+ # 消息
10
+ MESSAGE = 2
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ module JPushApiRubyClient
2
+ =begin
3
+ * 平台标识
4
+ =end
5
+ module PlatformType
6
+
7
+ # 安卓平台
8
+ ANDROID = 'android'
9
+ # IOS平台
10
+ IOS = 'ios'
11
+ # 安卓与IOS平台
12
+ BOTH = 'android,ios'
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ module JPushApiRubyClient
2
+ =begin
3
+ * 消息接收类型
4
+ =end
5
+ module ReceiverType
6
+
7
+ # 手机串号
8
+ IMEI = '1'
9
+ # 标签
10
+ TAG = '2'
11
+ # 别名
12
+ ALIAS = '3'
13
+ # 广播
14
+ BROADCAST = '4'
15
+ end
16
+ end
@@ -0,0 +1,3 @@
1
+ module JPushApiRubyClient
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,8 @@
1
+ require File.expand_path('../jpush_api_ruby_client/version', __FILE__)
2
+ module JPushApiRubyClient
3
+ autoload :Client, 'jpush_api_ruby_client/client'
4
+ autoload :ReceiverType, 'jpush_api_ruby_client/receiver_type'
5
+ autoload :PlatformType, 'jpush_api_ruby_client/platform_type'
6
+ autoload :MsgType, 'jpush_api_ruby_client/msg_type'
7
+
8
+ end
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jpush_api_ruby_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Xian OuYang
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '2.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rest-client
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.6.7
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 1.6.7
69
+ description: provide a ruby api gem for jpush https://www.jpush.cn
70
+ email:
71
+ - suport@jpush.cn
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - Gemfile
78
+ - LICENSE.txt
79
+ - README.md
80
+ - Rakefile
81
+ - doc/Gemfile.html
82
+ - doc/JPushApiRubyClient.html
83
+ - doc/JPushApiRubyClient/Client.html
84
+ - doc/JPushApiRubyClient/MsgType.html
85
+ - doc/JPushApiRubyClient/PlatformType.html
86
+ - doc/JPushApiRubyClient/ReceiverType.html
87
+ - doc/LICENSE_txt.html
88
+ - doc/Rakefile.html
89
+ - doc/created.rid
90
+ - doc/doc/created_rid.html
91
+ - doc/images/add.png
92
+ - doc/images/arrow_up.png
93
+ - doc/images/brick.png
94
+ - doc/images/brick_link.png
95
+ - doc/images/bug.png
96
+ - doc/images/bullet_black.png
97
+ - doc/images/bullet_toggle_minus.png
98
+ - doc/images/bullet_toggle_plus.png
99
+ - doc/images/date.png
100
+ - doc/images/delete.png
101
+ - doc/images/find.png
102
+ - doc/images/loadingAnimation.gif
103
+ - doc/images/macFFBgHack.png
104
+ - doc/images/package.png
105
+ - doc/images/page_green.png
106
+ - doc/images/page_white_text.png
107
+ - doc/images/page_white_width.png
108
+ - doc/images/plugin.png
109
+ - doc/images/ruby.png
110
+ - doc/images/tag_blue.png
111
+ - doc/images/tag_green.png
112
+ - doc/images/transparent.png
113
+ - doc/images/wrench.png
114
+ - doc/images/wrench_orange.png
115
+ - doc/images/zoom.png
116
+ - doc/index.html
117
+ - doc/jpush_api_ruby_client_gemspec.html
118
+ - doc/js/darkfish.js
119
+ - doc/js/jquery.js
120
+ - doc/js/navigation.js
121
+ - doc/js/search.js
122
+ - doc/js/search_index.js
123
+ - doc/js/searcher.js
124
+ - doc/rdoc.css
125
+ - doc/table_of_contents.html
126
+ - example/client_example.rb
127
+ - jpush_api_ruby_client.gemspec
128
+ - lib/jpush_api_ruby_client.rb
129
+ - lib/jpush_api_ruby_client/client.rb
130
+ - lib/jpush_api_ruby_client/msg_type.rb
131
+ - lib/jpush_api_ruby_client/platform_type.rb
132
+ - lib/jpush_api_ruby_client/receiver_type.rb
133
+ - lib/jpush_api_ruby_client/version.rb
134
+ homepage: https://github.com/aaron-codes/jpush-api-ruby-client
135
+ licenses:
136
+ - MIT
137
+ metadata: {}
138
+ post_install_message:
139
+ rdoc_options: []
140
+ require_paths:
141
+ - lib
142
+ required_ruby_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - '>='
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ requirements: []
153
+ rubyforge_project:
154
+ rubygems_version: 2.0.3
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: a ruby api client gem for jpush
158
+ test_files: []