pntfr 0.5.1 → 0.5.2

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: 155bd001219b0ae71b13a93d84e11bd6dcc2fb4d
4
- data.tar.gz: 60619eb1816e9f0296913de087e7a07465ec7161
3
+ metadata.gz: 2050d1fa6a4e3cecd3fb3772478b0510daafeb4a
4
+ data.tar.gz: 220bbae6b5b10ecc513ded32c49eb9b884b6d298
5
5
  SHA512:
6
- metadata.gz: 45e32abce7a6d7cf38ab4f5b1b2cd809263322ecffbbeb56f35ce0c555d8fef89367f9ebde6ebf46caa8ea9982b2f806a1e558874d4b1971aa1a7611a8bdc45b
7
- data.tar.gz: 6b43d884c55d5d9d5705dfb9afa6eb6f15659f8f5675fc5d60f02188f2d821a219cca2f9d6aa44aa7fed115939965e7d20773b62de79dfe9ecedf8dd45fca35a
6
+ metadata.gz: 5d2bff68fd2e597f4bb74dfe7092ccfd6397ad0084e6c5ba8ba1d404c34e5d7604b94aa0ce9eb774b049470dcffd345a907a3a39aff3db0d0ef5272b281e4e8c
7
+ data.tar.gz: 3fd175f1d640ec77c87cf19d344eef86958dbd2aba4aa5a5f91e69fa135697388d0e6e7eda2ef76e152c35ef8aa7f17dc3e2328cbea5f2ed806f6f1900d6fa7c
@@ -15,22 +15,23 @@ module Pntfr
15
15
  def notify devices, notification
16
16
  apns_notifications= []
17
17
  devices.each do |device|
18
+ dev_notif= notification.dup
18
19
  if device_controls_badge(device)
19
- if !notification[:badge].nil?
20
- device.num_notifs= notification[:badge]
20
+ if !dev_notif[:badge].nil?
21
+ device.num_notifs= dev_notif[:badge]
21
22
  else
22
23
  if device.methods.include?(:increment!)
23
24
  device.increment!(:num_notifs)
24
25
  else
25
26
  device.num_notifs+= 1
26
27
  end
27
- notification[:badge]= device.num_notifs
28
+ dev_notif[:badge]= device.num_notifs
28
29
  end
29
30
  end
30
31
  if Pntfr.test_env?
31
- Pntfr.add_delivery(device.push_id, notification)
32
+ Pntfr.add_delivery(device.push_id, dev_notif)
32
33
  else
33
- apns_notif= APNS::Notification.new(device.push_id, notification)
34
+ apns_notif= APNS::Notification.new(device.push_id, dev_notif)
34
35
  apns_notifications << apns_notif
35
36
  end
36
37
  end
@@ -2,6 +2,9 @@
2
2
  # Let's follow Semantic Versioning: http://semver.org/
3
3
  #
4
4
  module Pntfr
5
+ #
6
+ # PATCH v0.5.2
7
+ # - Fix. [FIX] Increase badge independently for each device.
5
8
  #
6
9
  # PATCH v0.5.1
7
10
  # - Use increment! instead of increment when incrementing badge on a device object
@@ -22,5 +25,5 @@ module Pntfr
22
25
  # - Allow overriding general configuration credentials when instantiating each
23
26
  # Notifier (on both platforms).
24
27
  # - Internal refactoring.
25
- VERSION = '0.5.1'
28
+ VERSION = '0.5.2'
26
29
  end
@@ -7,6 +7,7 @@ Pntfr::IosDevice= Struct.new(:platform, :push_id, :num_notifs)
7
7
  # A device class that quacks like ActiveRecord with num_notifs which will be autoincremented on each sent msg
8
8
  class Pntfr::ArIosDevice < Pntfr::IosDevice
9
9
  def increment!(attr_name, by=1)
10
- self.send("#{attr_name}=", by)
10
+ val= self.send("#{attr_name}")
11
+ self.send("#{attr_name}=", val.to_i + by)
11
12
  end
12
13
  end
@@ -7,9 +7,7 @@ module Pntfr
7
7
 
8
8
  Pntfr::Notifier.to(device).msg({:title => 't', :description => 'd'}).notify
9
9
 
10
- notifs= Pntfr.deliveries['1id2id3id4id5id']
11
- notif= notifs.last
12
- assert_equal 1, notif[:badge]
10
+ check_badge(1, '1id2id3id4id5id')
13
11
  assert_equal 1, device.num_notifs
14
12
  end
15
13
  def test_sending_a_notification_increments_notifier_notifications_num_on_active_record_devices
@@ -17,10 +15,25 @@ module Pntfr
17
15
 
18
16
  Pntfr::Notifier.to(device).msg({:title => 't', :description => 'd'}).notify
19
17
 
20
- notifs= Pntfr.deliveries['1ar2ar3ar4ar5ar']
21
- notif= notifs.last
22
- assert_equal 1, notif[:badge]
18
+ check_badge(1, '1ar2ar3ar4ar5ar')
23
19
  assert_equal 1, device.num_notifs
24
20
  end
21
+ def test_sending_a_notification_to_devices_with_different_badge_should_send_different_badge_for_each_device
22
+ devices= [Pntfr::ArIosDevice.new(Pntfr::Platforms::IOS, '1badge', 1),
23
+ Pntfr::ArIosDevice.new(Pntfr::Platforms::IOS, '2badge', 2)]
24
+
25
+ Pntfr::Notifier.to(devices).msg({:title => 'MultiBadge', :description => 'Test'}).notify
26
+
27
+ check_badge(2, '1badge')
28
+ check_badge(3, '2badge')
29
+ end
30
+ ###################################################
31
+ private
32
+ ###################################################
33
+ def check_badge(expected_badge, push_id)
34
+ notifs= Pntfr.deliveries[push_id]
35
+ notif= notifs.last
36
+ assert_equal expected_badge, notif[:badge], "Nofication for device [#{push_id}] should have expected badge"
37
+ end
25
38
  end
26
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pntfr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - oliver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-22 00:00:00.000000000 Z
11
+ date: 2015-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apns