hsquare 0.0.3 → 0.0.4

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: 68295eded2a69aee55bc5c7872dad307b18a3e4f
4
- data.tar.gz: 7cf7568ee2a4f0d1054d96507f01687a77cd9f24
3
+ metadata.gz: 0d1507f1c438d795d2e07722eade1b707f0406cb
4
+ data.tar.gz: 77f27aa6ceb593c0897dc4ad7c2f83afe51b8104
5
5
  SHA512:
6
- metadata.gz: d03de4a91ec006cc6991a4f26b13c1d3a5fa3a177d6b43397fee736c54af37606ce989d30a863b567f4ff099c72de73cbbe8fda3e322418fa9c436687438bda8
7
- data.tar.gz: 718edeb0586fb2159bac6df201516c457aa4c3c4d4e0f6758c4ffe9bd95a3758222324d10dc7527206ab30840f151b790cd95db769105b26980c663162f42ba6
6
+ metadata.gz: d7be65d1e64cc31120a655ee240103b523cdd7c74e4bd3a211cbd787e8b0481ab9e01fc5bd8f54b0cc996db47867b10eb4746f263915c933b42da5d6f9b8ca82
7
+ data.tar.gz: 52d7845f0f67a7aef317f971a77215567efd5bf9236131b6ad6a244b3a8a8c9488aa2d89d31fc97326f389fbeae597e4246656aee863e389fdce917fa9b9ba6e
@@ -50,7 +50,7 @@ module Hsquare
50
50
  # Returns registered Hsquare::Application object.
51
51
  def self.application(label = nil)
52
52
  if label
53
- @configuration.applications.detect { |application| application.label == label.to_sym }
53
+ @configuration.applications.detect { |application| application.label == label.to_sym } || @configuration.default_application
54
54
  else
55
55
  @configuration.default_application
56
56
  end
@@ -25,6 +25,9 @@ module Hsquare
25
25
  # Public: Extra payload.
26
26
  attr_accessor :extra
27
27
 
28
+ # Public: IDs of Hsquare applications to deliver.
29
+ attr_accessor :app_ids
30
+
28
31
  # Public: Initializes new notification object.
29
32
  #
30
33
  # attributes - Attributes of the notification.
@@ -39,6 +42,7 @@ module Hsquare
39
42
  # :idle_delay - Whether GCM message delivery is delayed
40
43
  # while device is idle (default: false).
41
44
  # :extra - Extra payload (optinoal).
45
+ # :app_ids - IDs of Hsquare applications to deliver.
42
46
  #
43
47
  # Returns newly initialized notification object.
44
48
  def initialize(attributes = {})
@@ -50,6 +54,7 @@ module Hsquare
50
54
  @collapse = attributes[:collapse]
51
55
  @idle_delay = attributes.has_key?(:idle_delay) ? attributes[:idle_delay] : false
52
56
  @extra = attributes[:extra]
57
+ @app_ids = attributes[:app_ids]
53
58
  end
54
59
 
55
60
  # Public: Helper method to set recipient_ids with single ID.
@@ -66,7 +71,9 @@ module Hsquare
66
71
  # Returns nothing.
67
72
  def deliver
68
73
  Hsquare.config.applications.each do |application|
69
- application.admin_client.post('/v1/push/send', body: payload)
74
+ if !app_ids || app_ids.include?(application.label)
75
+ application.admin_client.post('/v1/push/send', body: payload)
76
+ end
70
77
  end
71
78
  end
72
79
 
@@ -99,7 +106,7 @@ module Hsquare
99
106
  {
100
107
  collapse: collapse,
101
108
  delay_while_idle: idle_delay,
102
- custom_field: (extra || {}).merge(message: message)
109
+ custom_field: (extra || {}).merge(message: message, sound: sound)
103
110
  }.keep_if { |_, v| !v.nil? }
104
111
  end
105
112
  end
@@ -1,3 +1,3 @@
1
1
  module Hsquare
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -6,12 +6,38 @@ RSpec.describe Hsquare::Notification do
6
6
  let(:message) { 'message' }
7
7
  let(:notification) { Hsquare::Notification.new(recipient_id: recipient_id, message: message) }
8
8
 
9
- it do
10
- Hsquare.config.applications.each do |application|
11
- expect(application.admin_client).to receive(:post).with('/v1/push/send', body: { uuids: [recipient_id].to_json, push_message: { for_apns: { push_alert: true, message: message }, for_gcm: { delay_while_idle: false, custom_field: { message: message } } }.to_json })
9
+ context 'when no app ids is set' do
10
+ it do
11
+ Hsquare.config.applications.each do |application|
12
+ expect(application.admin_client).to receive(:post).with('/v1/push/send', body: { uuids: [recipient_id].to_json, push_message: { for_apns: { push_alert: true, message: message }, for_gcm: { delay_while_idle: false, custom_field: { message: message, sound: nil } } }.to_json })
13
+ end
14
+
15
+ notification.deliver
16
+ end
17
+ end
18
+
19
+ context 'when app ids is set' do
20
+ let(:notification) { Hsquare::Notification.new(recipient_id: recipient_id, message: message, app_ids: [nil]) }
21
+
22
+ it do
23
+ Hsquare.config.applications.each do |application|
24
+ expect(application.admin_client).to receive(:post).with('/v1/push/send', body: { uuids: [recipient_id].to_json, push_message: { for_apns: { push_alert: true, message: message }, for_gcm: { delay_while_idle: false, custom_field: { message: message, sound: nil } } }.to_json })
25
+ end
26
+
27
+ notification.deliver
12
28
  end
29
+ end
30
+
31
+ context 'when app ids is set' do
32
+ let(:notification) { Hsquare::Notification.new(recipient_id: recipient_id, message: message, app_ids: [:not_exist]) }
13
33
 
14
- notification.deliver
34
+ it do
35
+ Hsquare.config.applications.each do |application|
36
+ expect(application.admin_client).not_to receive(:post).with('/v1/push/send', body: { uuids: [recipient_id].to_json, push_message: { for_apns: { push_alert: true, message: message }, for_gcm: { delay_while_idle: false, custom_field: { message: message } } }.to_json })
37
+ end
38
+
39
+ notification.deliver
40
+ end
15
41
  end
16
42
  end
17
43
 
@@ -35,7 +35,7 @@ RSpec.describe Hsquare do
35
35
  it { expect(Hsquare.application(:first).admin_key).to eq('firstkey') }
36
36
  it { expect(Hsquare.application(:second)).not_to be_nil }
37
37
  it { expect(Hsquare.application(:second).admin_key).to eq('secondkey') }
38
- it { expect(Hsquare.application(:third)).to be_nil }
38
+ it { expect(Hsquare.application(:third)).to eq(Hsquare.application(:first)) }
39
39
  it { expect(Hsquare.application).not_to be_nil }
40
40
  it { expect(Hsquare.application.label).to eq(:first) }
41
41
  it { expect(Hsquare.application.admin_key).to eq('firstkey') }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hsquare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Inbeom Hwang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-15 00:00:00.000000000 Z
11
+ date: 2014-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty