pntfr 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bc9ce43d0b5be354b83dc3016f76ea72f40f1866
4
- data.tar.gz: 5f3a937bcb675fd5d6a94ab6c3b88d814c6ce639
3
+ metadata.gz: e851e22201a25b2535b8da2b6543a752483553c7
4
+ data.tar.gz: 0b725ce8bc511327f58078de1cde59fd0961462e
5
5
  SHA512:
6
- metadata.gz: b5f2f8fdffc88fbf0dd442a552e83c9c67fe8b13875f8d572e7edc7c4d003680c68f6024cb2cd46ebdbd49442de709af02f0a06641fc1758fc0b644913bf00d1
7
- data.tar.gz: d32daa6100a28971816169e966bb80acc8be28176c55536fd096fb861a2133dfdc29ec02bd233dbaab051af7e60c0e9ccf7285bcd6a8191f05f9dabcb1d1d464
6
+ metadata.gz: 65725eb135334b436031f3f36bd1353497d62dab244f7da49dfbd2cf59e2aa72ced7993f55269969bdeacdd93fdd34c384bac500cffcc71a034a33a0bcda9876
7
+ data.tar.gz: 82f8acb3146919185317497b33171cfe9654775dbfce95b055490de196f149ef537b5191ade9042152fb04251290d776d41b513a53a8ffa885546468128acade
data/README.md CHANGED
@@ -46,7 +46,9 @@ end
46
46
  ## Sending messages
47
47
  Pntfr suposes you have device objects, or other kind of model, with `platform` and `push_id` attributes.
48
48
  Also, and optionally, a `num_notifs` integer attribute will be automagically managed to
49
- monitor Apple's badge in notifications.
49
+ monitor Apple's badge in notifications (for device objects with an `increment` method
50
+ (like ActiveRecord;) will use `increment(:num_notifs)`, for non ActiveRecord like
51
+ device objects `num_notifs+= 1` will be used).
50
52
 
51
53
  In order to avoid having to create a different message for each platform Pntfr
52
54
  expects a "neutral format" for the messages. The neutral format of the messages
@@ -101,7 +103,18 @@ notifier.msg(
101
103
  }
102
104
  )
103
105
  notifier.notify
104
-
106
+ # for IOS will result in the adding the custom content in the msg this way:
107
+ msg[:other][:custom]= {
108
+ :extra1 => 'extra one',
109
+ :extra_2 => 'extra 2',
110
+ :'last-extra' => {lastkey: 'last value'}
111
+ }
112
+ # for ANDROID will result in the adding the custom content in the msg this way:
113
+ msg[:custom]= {
114
+ :extra1 => 'extra one',
115
+ :extra_2 => 'extra 2',
116
+ :'last-extra' => {lastkey: 'last value'}
117
+ }
105
118
 
106
119
  # SETTING ANPS AND GCN CREDENTIALS ON EACH NOTIFICATION
107
120
  # using different configuration on each call
@@ -19,7 +19,11 @@ module Pntfr
19
19
  if !notification[:badge].nil?
20
20
  device.num_notifs= notification[:badge]
21
21
  else
22
- device.num_notifs+= 1
22
+ if device.methods.include?(:increment)
23
+ device.increment(:num_notifs)
24
+ else
25
+ device.num_notifs+= 1
26
+ end
23
27
  notification[:badge]= device.num_notifs
24
28
  end
25
29
  end
data/lib/pntfr/version.rb CHANGED
@@ -1,4 +1,10 @@
1
+ #
2
+ # Let's follow Semantic Versioning: http://semver.org/
3
+ #
1
4
  module Pntfr
5
+ #
6
+ # MINOR v0.5.0
7
+ # - Badge control now can use ActiveRecord's increment method.
2
8
  #
3
9
  # PATCH v0.4.1
4
10
  # - Republish gem after gem yanking it.
@@ -12,5 +18,5 @@ module Pntfr
12
18
  # - Allow overriding general configuration credentials when instantiating each
13
19
  # Notifier (on both platforms).
14
20
  # - Internal refactoring.
15
- VERSION = '0.4.1'
21
+ VERSION = '0.5.0'
16
22
  end
data/test/pntfr/device.rb CHANGED
@@ -4,3 +4,9 @@
4
4
  Pntfr::Device= Struct.new(:platform, :push_id)
5
5
  # device with num_notifs which will be autoincremented on each sent msg
6
6
  Pntfr::IosDevice= Struct.new(:platform, :push_id, :num_notifs)
7
+ # A device class that quacks like ActiveRecord with num_notifs which will be autoincremented on each sent msg
8
+ class Pntfr::ArIosDevice < Pntfr::IosDevice
9
+ def increment(attr_name, by=1)
10
+ self.send("#{attr_name}=", by)
11
+ end
12
+ end
@@ -2,7 +2,7 @@ require 'pntfr/device'
2
2
 
3
3
  module Pntfr
4
4
  class IosBadgeTest < Minitest::Test
5
- def test_sending_a_notification_increments_notifier_notifications_num
5
+ def test_sending_a_notification_increments_notifier_notifications_num_on_non_active_record_devices
6
6
  device= Pntfr::IosDevice.new(Pntfr::Platforms::IOS, '1id2id3id4id5id', 0)
7
7
 
8
8
  Pntfr::Notifier.to(device).msg({:title => 't', :description => 'd'}).notify
@@ -12,5 +12,15 @@ module Pntfr
12
12
  assert_equal 1, notif[:badge]
13
13
  assert_equal 1, device.num_notifs
14
14
  end
15
+ def test_sending_a_notification_increments_notifier_notifications_num_on_active_record_devices
16
+ device= Pntfr::ArIosDevice.new(Pntfr::Platforms::IOS, '1ar2ar3ar4ar5ar', 0)
17
+
18
+ Pntfr::Notifier.to(device).msg({:title => 't', :description => 'd'}).notify
19
+
20
+ notifs= Pntfr.deliveries['1ar2ar3ar4ar5ar']
21
+ notif= notifs.last
22
+ assert_equal 1, notif[:badge]
23
+ assert_equal 1, device.num_notifs
24
+ end
15
25
  end
16
26
  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.4.1
4
+ version: 0.5.0
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-03 00:00:00.000000000 Z
11
+ date: 2015-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apns