qqpush 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c814ce9c2d1fc7e951c5b45d443fa9e685195805
4
- data.tar.gz: 7bcd0ccf248da37d3e86f1aab51d393c1b1e91e5
3
+ metadata.gz: 99d162dac56d32d724cb95101b085d973659a975
4
+ data.tar.gz: 1ef04859ed235272bcd08a55e96c52ebd3fec258
5
5
  SHA512:
6
- metadata.gz: f42c0980366d0d39ac8d8beb9ead853a9456cde680758bb233d39553298976ce32a8cd240bd98b7357d5f2f1ff4667892106850e8e504b4e220202dce19cf46c
7
- data.tar.gz: 86d4473002e103fe1b4a5ba70468cbb8ef457d65f0c6ea3220ff479230ad7808a54b6114b899ef6b3653732c35f9044d6513304691578bc0e8b1db89a35dea13
6
+ metadata.gz: f234c8258806e9768fd69f5d6cd3c75d9094ebaff5cd4e2ab0b9954993c2208a0388abd268b3023f055f6ff04b8f6ed54b5b5d55d46518b154efc337b7e68fb3
7
+ data.tar.gz: 626508cb87a0639899bba1a6cf69bf4c81ae52d40782c7d9c7732ca2572e719a9c2cfb6312455ec14150dfaf231f5c318351e425ad876ba90757b13df6576fb6
data/README.md CHANGED
@@ -2,6 +2,29 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/qqpush.svg)](http://badge.fury.io/rb/qqpush)
4
4
 
5
+ ## 示例
6
+
7
+ ```ruby
8
+ # iOS
9
+ message = QQpush::Ios.new(device_token: 'a123b', param_content: 'joe')
10
+ message.settings = { access_id: '555', secret_key: '888' }
11
+ message.request_params[:environment] = 1 if Rails.env.production?
12
+ message.push_single_device
13
+
14
+ # Android
15
+ message = QQpush::Android.new(
16
+ device_token: 'a123b', param_title: 'yo', param_content: 'joe')
17
+ message.settings = { access_id: '555', secret_key: '888' }
18
+ message.push_single_device
19
+ ```
20
+
21
+ ## 测试
22
+
23
+ ```bash
24
+ $ rake init[your_access_id, your_secret_key]
25
+ $ rake test
26
+ ```
27
+
5
28
  ## 参考链接
6
29
 
7
30
  - [官网](http://xg.qq.com)
data/Rakefile CHANGED
@@ -22,11 +22,12 @@ task :spec, :spec_name, :examples do |_t, args|
22
22
  end
23
23
 
24
24
  desc 'generate settings.yml'
25
- task :init do
25
+ task :init, :access_id, :secret_key do |_t, args|
26
26
  require 'yaml'
27
27
  file = File.open('settings.yml', 'w+')
28
- settings = { access_id: nil, secret_key: nil }.to_yaml
29
- file.puts '# http://developer.xg.qq.com/index.php/Rest_API'
28
+ settings = { access_id: args.access_id, secret_key: args.secret_key }.to_yaml
29
+ file.puts '# http://developer.xg.qq.com/index.php/Rest_API' \
30
+ '#.E9.80.9A.E7.94.A8.E5.8F.82.E6.95.B0'
30
31
  file.puts settings
31
32
  file.close
32
33
  puts './settings.yml created.'
@@ -1,4 +1,5 @@
1
1
  module QQpush
2
+ # Android device
2
3
  class Android < General
3
4
  def initialize(params = {})
4
5
  super
@@ -5,6 +5,7 @@ require 'json'
5
5
  require 'yaml'
6
6
 
7
7
  module QQpush
8
+ # General REST API
8
9
  class General
9
10
  attr_accessor :settings, :request_params
10
11
 
@@ -65,21 +66,24 @@ module QQpush
65
66
 
66
67
  private
67
68
 
68
- def business_params(params)
69
- params.reject { |k, _v| k.to_s =~ /param_.*/ }
70
- end
71
-
72
69
  def params_string(params)
73
70
  new_string = ''
74
- business_params(params).keys.map(&:to_s).sort.each do |key|
71
+ business_params_string_keys(params).each do |key|
75
72
  next unless params[key] || params[key.to_sym]
76
73
  value = [params[key], params[key.to_sym]].compact.first
77
- value = value.is_a?(Hash) ? value.to_json : value.to_s
78
- new_value =
79
- params[:param_encode] ? "#{URI.encode(value)}&" : value
80
- new_string += "#{key}=#{new_value}" if new_value
74
+ value = param_string_value(value)
75
+ new_value = params[:param_encode] ? "#{URI.encode(value)}&" : value
76
+ new_string += "#{key}=#{new_value}"
81
77
  end
82
78
  new_string
83
79
  end
80
+
81
+ def business_params_string_keys(params)
82
+ params.reject { |k, _v| k.to_s =~ /param_.*/ }.keys.map(&:to_s).sort
83
+ end
84
+
85
+ def param_string_value(value)
86
+ value.is_a?(Hash) ? value.to_json : value.to_s
87
+ end
84
88
  end
85
89
  end
data/lib/qqpush/ios.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  module QQpush
2
+ # iOS device
2
3
  class Ios < General
3
4
  def initialize(params = {})
4
5
  super
data/lib/qqpush.rb CHANGED
@@ -2,5 +2,6 @@ require 'qqpush/general.rb'
2
2
  require 'qqpush/android'
3
3
  require 'qqpush/ios'
4
4
 
5
+ # http://developer.xg.qq.com/index.php/Rest_API
5
6
  module QQpush
6
7
  end
data/qqpush.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'qqpush'
3
- s.version = '0.0.6'
3
+ s.version = '0.0.7'
4
4
  s.date = '2015-08-31'
5
5
  s.summary = 'Tencent XG Push'
6
6
  s.description = 'App push service by Tencent XG'
data/spec/general_spec.rb CHANGED
@@ -7,9 +7,9 @@ describe 'General methods' do
7
7
  end
8
8
 
9
9
  it 'can generate sign by params' do
10
- # http://developer.xg.qq.com/index.php/Rest_API
10
+ # http://developer.xg.qq.com/index.php/Rest_API#.E9.80.9A.E7.94.A8.E5.8F.82.E6.95.B0
11
11
  @request.settings = { access_id: '123', secret_key: 'abcde' }
12
- new_params = { timestamp: 1386691200, param_request: 'post',
12
+ new_params = { timestamp: '1386691200', param_request: 'post',
13
13
  param_class: 'push', param_method: 'single_device',
14
14
  'Param1' => 'Value1', 'Param2' => 'Value2' }
15
15
  params = @request.general_params(new_params)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qqpush
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chao Li