xiaomi-push 0.2.1 → 0.2.3
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/Gemfile +1 -0
- data/README.md +2 -0
- data/Rakefile +22 -23
- data/bin/xmp +2 -4
- data/lib/xiaomi/push.rb +9 -15
- data/lib/xiaomi/push/client.rb +1 -3
- data/lib/xiaomi/push/commands.rb +6 -1
- data/lib/xiaomi/push/commands/feedback.rb +14 -14
- data/lib/xiaomi/push/commands/message.rb +59 -67
- data/lib/xiaomi/push/const.rb +4 -5
- data/lib/xiaomi/push/devices/ios.rb +0 -2
- data/lib/xiaomi/push/error.rb +0 -1
- data/lib/xiaomi/push/services/feedback.rb +1 -2
- data/lib/xiaomi/push/services/messages/base.rb +12 -12
- data/lib/xiaomi/push/services/topic.rb +20 -19
- data/lib/xiaomi/push/version.rb +1 -1
- data/xiaomi-push.gemspec +15 -15
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 596215b9db023ba5ed57ecdb279b08227b7c181d
|
4
|
+
data.tar.gz: d404409f70e5b628360cb926ba0229cff4a2a10e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c5ca54678cff7b74bbc93d8c9d8a90c9de3d7c1c61999caca6425f0dc299023766456a39e5de5af2da691e6e2c8cd5178c73f2e748a2dc0787fcff86dafea72
|
7
|
+
data.tar.gz: 99cf5f458eb925cea7b54e09fe411d648dfcee67ce5f041579383bc6c65be04b789ea0b7622251962b0be9fbdb2003efb5aac780b9662c4f39f64d7949cc8c11
|
data/Gemfile
CHANGED
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rspec/core/rake_task'
|
3
3
|
require 'dotenv/tasks'
|
4
|
-
require 'awesome_print'
|
5
4
|
|
6
5
|
# $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
7
6
|
|
@@ -9,49 +8,49 @@ require 'xiaomi/push'
|
|
9
8
|
|
10
9
|
RSpec::Core::RakeTask.new(:spec)
|
11
10
|
|
12
|
-
task :
|
13
|
-
|
14
|
-
task :send => :dotenv do
|
11
|
+
task default: :spec
|
15
12
|
|
13
|
+
task send: :dotenv do
|
16
14
|
message = {
|
17
15
|
title: '这是标题',
|
18
16
|
description: '这个是推送的描述',
|
19
|
-
notify_type: -1
|
17
|
+
notify_type: -1
|
20
18
|
}
|
19
|
+
|
21
20
|
client = Xiaomi::Push::Android.new(ENV['XIAOMI_PUSH_ANDROID_SECRET'])
|
22
21
|
|
23
|
-
p
|
24
|
-
client.message.send(reg_id:'', message:message)
|
25
|
-
r = client.message.send(alias:'866383029998732', message:message)
|
26
|
-
r = client.message.send(topic:'test', message:message)
|
27
|
-
|
22
|
+
p 'Send message to android device'
|
23
|
+
client.message.send(reg_id: '', message: message)
|
24
|
+
r = client.message.send(alias: '866383029998732', message: message)
|
25
|
+
r = client.message.send(topic: 'test', message: message)
|
26
|
+
puts r
|
28
27
|
|
29
|
-
p
|
28
|
+
p 'Send message to ios device'
|
30
29
|
client = Xiaomi::Push::IOS.new(ENV['XIAOMI_PUSH_IOS_SECRET'])
|
31
30
|
r = client.message.send(
|
32
|
-
reg_id:'xksdf76s667687xd786sdxsdf689s6x6s8d76s8d',
|
33
|
-
message:Xiaomi::Push::Message::IOS.new(
|
34
|
-
description:'这不是描述'
|
31
|
+
reg_id: 'xksdf76s667687xd786sdxsdf689s6x6s8d76s8d',
|
32
|
+
message: Xiaomi::Push::Message::IOS.new(
|
33
|
+
description: '这不是描述'
|
35
34
|
))
|
36
|
-
|
35
|
+
puts r
|
37
36
|
end
|
38
37
|
|
39
38
|
namespace :topic do
|
40
|
-
task :
|
39
|
+
task subscribe: :dotenv do
|
41
40
|
client = Xiaomi::Push::Android.new(ENV['XIAOMI_PUSH_ANDROID_SECRET'])
|
42
|
-
r = client.topic.subscribe(alias:'866383029998732', name:'test')
|
41
|
+
r = client.topic.subscribe(alias: '866383029998732', name: 'test')
|
43
42
|
ap r
|
44
43
|
end
|
45
44
|
|
46
|
-
task :
|
45
|
+
task unsubscribe: :dotenv do
|
47
46
|
client = Xiaomi::Push::Android.new(ENV['XIAOMI_PUSH_ANDROID_SECRET'])
|
48
|
-
r = client.topic.unsubscribe(alias:'866383029998732', name:'test')
|
47
|
+
r = client.topic.unsubscribe(alias: '866383029998732', name: 'test')
|
49
48
|
ap r
|
50
49
|
end
|
51
50
|
end
|
52
51
|
|
53
52
|
task :message do
|
54
|
-
ios_message = Xiaomi::Push::Message::IOS.new(title:'dddd')
|
53
|
+
ios_message = Xiaomi::Push::Message::IOS.new(title: 'dddd')
|
55
54
|
ios_message.extra('url', 'http://www.xxx.com')
|
56
55
|
p ios_message
|
57
56
|
|
@@ -61,5 +60,5 @@ end
|
|
61
60
|
task :feedback do
|
62
61
|
client = Xiaomi::Push::Android.new(ENV['XIAOMI_PUSH_ANDROID_SECRET'])
|
63
62
|
r = client.feedback.invalid
|
64
|
-
|
63
|
+
puts r
|
65
64
|
end
|
data/bin/xmp
CHANGED
@@ -2,10 +2,8 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'commander/import'
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require "awesome_print"
|
8
|
-
|
5
|
+
require 'bundler/setup'
|
6
|
+
require 'xiaomi/push'
|
9
7
|
|
10
8
|
program :version, Xiaomi::Push::VERSION
|
11
9
|
program :description, 'xiaomi push command line tool'
|
data/lib/xiaomi/push.rb
CHANGED
@@ -1,22 +1,16 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require 'xiaomi/push/version'
|
2
|
+
require 'xiaomi/push/error'
|
3
|
+
require 'xiaomi/push/const'
|
4
|
+
require 'xiaomi/push/client'
|
5
5
|
|
6
|
-
require
|
7
|
-
require
|
8
|
-
|
9
|
-
require "xiaomi/push/services/message"
|
10
|
-
require "xiaomi/push/services/topic"
|
11
|
-
require "xiaomi/push/services/feedback"
|
6
|
+
require 'xiaomi/push/devices/ios'
|
7
|
+
require 'xiaomi/push/devices/android'
|
12
8
|
|
9
|
+
require 'xiaomi/push/services/message'
|
10
|
+
require 'xiaomi/push/services/topic'
|
11
|
+
require 'xiaomi/push/services/feedback'
|
13
12
|
|
14
13
|
unless defined?(Dotenv)
|
15
14
|
require 'dotenv'
|
16
15
|
Dotenv.load
|
17
16
|
end
|
18
|
-
|
19
|
-
module Xiaomi
|
20
|
-
module Push
|
21
|
-
end
|
22
|
-
end
|
data/lib/xiaomi/push/client.rb
CHANGED
@@ -8,7 +8,7 @@ module Xiaomi
|
|
8
8
|
|
9
9
|
attr_reader :device, :secret, :header
|
10
10
|
def initialize(secret)
|
11
|
-
@device = self.class.name.split(
|
11
|
+
@device = self.class.name.split('::')[-1].upcase
|
12
12
|
@secret = secret
|
13
13
|
|
14
14
|
unless DEVICES.include?@device
|
@@ -34,12 +34,10 @@ module Xiaomi
|
|
34
34
|
@feedback ||= Services::Feedback.new(self)
|
35
35
|
end
|
36
36
|
|
37
|
-
|
38
37
|
def request(url, params)
|
39
38
|
r = RestClient.post url, params, @header
|
40
39
|
data = MultiJson.load r
|
41
40
|
end
|
42
|
-
|
43
41
|
end
|
44
42
|
end
|
45
43
|
end
|
data/lib/xiaomi/push/commands.rb
CHANGED
@@ -4,11 +4,11 @@ command :feedback do |c|
|
|
4
4
|
c.description = ''
|
5
5
|
|
6
6
|
# normal params
|
7
|
-
c.option '--device DEVICE',
|
7
|
+
c.option '--device DEVICE', %w('android', 'ios'), '设备类型'
|
8
8
|
c.option '--secret SECRET', '应用密钥'
|
9
9
|
|
10
10
|
c.action do |args, options|
|
11
|
-
|
11
|
+
puts options if $verbose
|
12
12
|
|
13
13
|
@device = options.device.capitalize if options.device
|
14
14
|
@secret = options.secret
|
@@ -21,19 +21,19 @@ command :feedback do |c|
|
|
21
21
|
|
22
22
|
private
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
def feedback!
|
25
|
+
client = Xiaomi::Push.const_get(@device).new(@secret)
|
26
|
+
r = client.feedback.invalid
|
27
27
|
|
28
|
-
|
29
|
-
|
28
|
+
puts r
|
29
|
+
end
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
31
|
+
def determine_device!
|
32
|
+
devices = %w(Android iOS).freeze
|
33
|
+
@device = choose "选择推送设备:", *devices
|
34
|
+
end
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
def determine_secret!
|
37
|
+
@secret ||= ask '小米应用密钥:'
|
38
|
+
end
|
39
39
|
end
|
@@ -4,7 +4,7 @@ command :message do |c|
|
|
4
4
|
c.description = '使用小米推送消息(目前仅支持 regid/alias/topic 推送方式)'
|
5
5
|
|
6
6
|
# normal params
|
7
|
-
c.option '--device DEVICE',
|
7
|
+
c.option '--device DEVICE', %w('android', 'ios'), '设备类型'
|
8
8
|
c.option '--secret SECRET', '应用密钥'
|
9
9
|
|
10
10
|
# type
|
@@ -18,16 +18,8 @@ command :message do |c|
|
|
18
18
|
c.option '-b', '--badge BADGE', Integer, '消息数字'
|
19
19
|
c.option '-e', '--extras KEY=VALUE', Array, '自定义数据(使用 KEY=VALUE 方式,多个以逗号不带空格分隔)'
|
20
20
|
|
21
|
-
# ## ios only
|
22
|
-
# c.option '-y', '--category CATEGORY', '推送类别名称 (仅 iOS 有效)'
|
23
|
-
# c.option '-v', '--environment ENV', [:production, :sandbox], '推送环境(仅 iOS 有效)'
|
24
|
-
#
|
25
|
-
# ## android only
|
26
|
-
# c.option '-g', '--through THROUGHT', [0, 1], '消息传递方式(仅 iOS 有效)'
|
27
|
-
# c.option '-n', '--notify NOTIFY', [-1, 1, 2, 4], 'message notify type'
|
28
|
-
|
29
21
|
c.action do |args, options|
|
30
|
-
|
22
|
+
puts options if $verbose
|
31
23
|
|
32
24
|
@device = options.device.capitalize if options.device
|
33
25
|
@secret = options.secret
|
@@ -43,78 +35,78 @@ command :message do |c|
|
|
43
35
|
|
44
36
|
private
|
45
37
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
38
|
+
def sent!
|
39
|
+
message_data = {
|
40
|
+
@channel.to_sym => @channel_id,
|
41
|
+
:message => @message
|
42
|
+
}
|
51
43
|
|
52
|
-
|
53
|
-
|
54
|
-
|
44
|
+
if $verbose
|
45
|
+
puts message_data
|
46
|
+
end
|
55
47
|
|
56
|
-
|
57
|
-
|
48
|
+
client = Xiaomi::Push.const_get(@device).new(@secret)
|
49
|
+
r = client.message.send(message_data)
|
58
50
|
|
59
|
-
|
60
|
-
|
51
|
+
puts r
|
52
|
+
end
|
61
53
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
54
|
+
def determine_android_message!(options)
|
55
|
+
@message = Xiaomi::Push::Message::Android.new(
|
56
|
+
title: @title,
|
57
|
+
description: @description,
|
58
|
+
badge: @badge,
|
59
|
+
extras: @extras
|
60
|
+
)
|
61
|
+
end
|
70
62
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
63
|
+
def determine_ios_message!(options)
|
64
|
+
@message = Xiaomi::Push::Message::IOS.new(
|
65
|
+
description: @description,
|
66
|
+
badge: @badge,
|
67
|
+
extras: @extras
|
68
|
+
)
|
69
|
+
end
|
78
70
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
71
|
+
def determine_message!(options)
|
72
|
+
@title = options.title
|
73
|
+
@description = options.description
|
74
|
+
@badge = options.badge
|
83
75
|
|
84
|
-
|
85
|
-
|
76
|
+
@extras =
|
77
|
+
if options.extras
|
78
|
+
Hash[options.extras.collect { |data| data.split(/\=/) }]
|
86
79
|
else
|
87
80
|
nil
|
88
81
|
end
|
89
82
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
def determine_device!
|
99
|
-
devices = %w[Android iOS].freeze
|
100
|
-
@device = choose "选择推送设备:", *devices
|
83
|
+
case @device.downcase
|
84
|
+
when 'android'
|
85
|
+
determine_android_message!(options)
|
86
|
+
when 'ios'
|
87
|
+
determine_ios_message!(options)
|
101
88
|
end
|
89
|
+
end
|
102
90
|
|
103
|
-
|
104
|
-
|
105
|
-
|
91
|
+
def determine_device!
|
92
|
+
devices = %w(Android iOS).freeze
|
93
|
+
@device = choose "选择推送设备:", *devices
|
94
|
+
end
|
106
95
|
|
107
|
-
|
108
|
-
|
109
|
-
|
96
|
+
def determine_secret!
|
97
|
+
@secret ||= ask '小米应用密钥:'
|
98
|
+
end
|
110
99
|
|
111
|
-
|
112
|
-
|
100
|
+
def determine_channel!(options)
|
101
|
+
channles = %w(regid alias topic).freeze
|
102
|
+
@channel = channles.select { |k| options.__hash__.key?k.to_sym }
|
113
103
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
104
|
+
if @channel.count > 0
|
105
|
+
@channel = @channel[0]
|
106
|
+
@channel_id = options.__hash__[@channel.to_sym]
|
107
|
+
else
|
108
|
+
@channel = choose "选择推送方式:", *channles
|
109
|
+
@channel_id = ask "输入 #{@channel} 的值:"
|
119
110
|
end
|
111
|
+
end
|
120
112
|
end
|
data/lib/xiaomi/push/const.rb
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
require 'uri'
|
2
2
|
|
3
|
-
|
4
3
|
module Xiaomi
|
5
4
|
module Push
|
6
5
|
module Const
|
7
|
-
DEVICES = %w
|
6
|
+
DEVICES = %w(ANDROID IOS).freeze
|
8
7
|
|
9
|
-
PRODUCTION_URL = 'https://api.xmpush.xiaomi.com'
|
10
|
-
SANDBOX_URL = 'https://sandbox.xmpush.xiaomi.com'
|
8
|
+
PRODUCTION_URL = 'https://api.xmpush.xiaomi.com'.freeze
|
9
|
+
SANDBOX_URL = 'https://sandbox.xmpush.xiaomi.com'.freeze
|
11
10
|
|
12
11
|
attr_reader :base_url
|
13
12
|
|
@@ -28,7 +27,7 @@ module Xiaomi
|
|
28
27
|
end
|
29
28
|
|
30
29
|
def build_uri(uri)
|
31
|
-
URI
|
30
|
+
URI.join(@base_url, "v2/#{uri}").to_s
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
data/lib/xiaomi/push/error.rb
CHANGED
@@ -2,7 +2,6 @@ module Xiaomi
|
|
2
2
|
module Push
|
3
3
|
module Services
|
4
4
|
class Feedback
|
5
|
-
|
6
5
|
attr_reader :context
|
7
6
|
|
8
7
|
def initialize(context)
|
@@ -12,7 +11,7 @@ module Xiaomi
|
|
12
11
|
def invalid
|
13
12
|
url = 'https://feedback.xmpush.xiaomi.com/v1/feedback/fetch_invalid_regids'
|
14
13
|
r = RestClient.get url, @context.header
|
15
|
-
|
14
|
+
MultiJson.load r
|
16
15
|
end
|
17
16
|
end
|
18
17
|
end
|
@@ -15,28 +15,28 @@ module Xiaomi
|
|
15
15
|
def type(key, value = nil)
|
16
16
|
key = "@#{key}"
|
17
17
|
|
18
|
-
|
19
|
-
instance_variable_get key
|
20
|
-
else
|
18
|
+
if value
|
21
19
|
instance_variable_set key, value
|
20
|
+
else
|
21
|
+
instance_variable_get key
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
def build
|
26
26
|
hash_data = {}
|
27
27
|
instance_variables.each do |ivar|
|
28
|
-
key = ivar.to_s.
|
28
|
+
key = ivar.to_s.delete('@', '')
|
29
29
|
value = instance_variable_get ivar
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
hash_data[key] = v
|
38
|
-
end
|
31
|
+
next unless value
|
32
|
+
|
33
|
+
if key == 'extras'
|
34
|
+
value.each do |k, v|
|
35
|
+
key = "extra.#{k}"
|
36
|
+
hash_data[key] = v
|
39
37
|
end
|
38
|
+
else
|
39
|
+
hash_data[key] = value
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -9,34 +9,35 @@ module Xiaomi
|
|
9
9
|
|
10
10
|
def subscribe(**options)
|
11
11
|
url, params = prepare_params(__method__.to_s, options)
|
12
|
-
|
12
|
+
@context.request url, params
|
13
13
|
end
|
14
14
|
|
15
15
|
def unsubscribe(**options)
|
16
16
|
url, params = prepare_params(__method__.to_s, options)
|
17
|
-
|
17
|
+
@context.request url, params
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
21
|
-
def prepare_params(uri, options)
|
22
|
-
if options.has_key?(:reg_id)
|
23
|
-
type = "registration_id"
|
24
|
-
value = options[:reg_id]
|
25
|
-
url = @context.build_uri("topic/#{uri}")
|
26
|
-
elsif options.has_key?(:alias)
|
27
|
-
type = "aliases"
|
28
|
-
value = options[:alias]
|
29
|
-
url = @context.build_uri("topic/#{uri}/alias")
|
30
|
-
end
|
31
21
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
}
|
37
|
-
|
38
|
-
|
22
|
+
def prepare_params(uri, options)
|
23
|
+
if options.key?(:reg_id)
|
24
|
+
type = 'registration_id'
|
25
|
+
value = options[:reg_id]
|
26
|
+
url = @context.build_uri("topic/#{uri}")
|
27
|
+
elsif options.key?(:alias)
|
28
|
+
type = 'aliases'
|
29
|
+
value = options[:alias]
|
30
|
+
url = @context.build_uri("topic/#{uri}/alias")
|
39
31
|
end
|
32
|
+
|
33
|
+
params = {
|
34
|
+
type.to_sym => value,
|
35
|
+
:topic => options[:name],
|
36
|
+
:category => options[:category]
|
37
|
+
}
|
38
|
+
|
39
|
+
[url, params]
|
40
|
+
end
|
40
41
|
end
|
41
42
|
end
|
42
43
|
end
|
data/lib/xiaomi/push/version.rb
CHANGED
data/xiaomi-push.gemspec
CHANGED
@@ -4,26 +4,26 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'xiaomi/push/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'xiaomi-push'
|
8
8
|
spec.version = Xiaomi::Push::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['icyleaf']
|
10
|
+
spec.email = ['icyleaf.cn@gmail.com']
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
12
|
+
spec.summary = 'MiPush Server SDK for Ruby'
|
13
|
+
spec.description = 'MiPush Server SDK for Ruby'
|
14
|
+
spec.homepage = 'http://github.com/icyleaf/xiaomi-push'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
-
spec.require_paths = [
|
18
|
+
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_dependency
|
21
|
-
spec.add_dependency
|
22
|
-
spec.add_dependency
|
20
|
+
spec.add_dependency 'rest-client', '>= 1.7.3'
|
21
|
+
spec.add_dependency 'commander', '~> 4.3.2'
|
22
|
+
spec.add_dependency 'multi_json', '~> 1.11.0'
|
23
23
|
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency
|
27
|
-
spec.add_development_dependency
|
28
|
-
spec.add_development_dependency
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.9'
|
25
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
+
spec.add_development_dependency 'dotenv', '~> 2.0.1'
|
27
|
+
spec.add_development_dependency 'rspec'
|
28
|
+
spec.add_development_dependency 'awesome_print'
|
29
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xiaomi-push
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icyleaf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -174,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
174
174
|
version: '0'
|
175
175
|
requirements: []
|
176
176
|
rubyforge_project:
|
177
|
-
rubygems_version: 2.4
|
177
|
+
rubygems_version: 2.6.4
|
178
178
|
signing_key:
|
179
179
|
specification_version: 4
|
180
180
|
summary: MiPush Server SDK for Ruby
|