pushpad 0.1.6 → 0.2.1

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +28 -12
  3. data/lib/pushpad.rb +6 -2
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90bdda996e91aeb9895cec9561e37ef295f70794
4
- data.tar.gz: ab5ce0db6b9a5cf5c6014ce1f9a7a72ca888b881
3
+ metadata.gz: 280dfb492f2142c46bc48aab853d09a1d2a6c8a8
4
+ data.tar.gz: 30ae77b7b02d8c1f989f24870f2ed8f0918add83
5
5
  SHA512:
6
- metadata.gz: c9603df2c24e32a48b4e3d393847edf8125cdf4d96b005bf26444e75082fb355bcb35efb6ed3a2f96e49645ad94a51f8ce7263149f2fdb88f4c1da82944fdc80
7
- data.tar.gz: b06c575e6e1b36f2ea5e9ec78c3f4d030f13512b01084cb3a625a13403d51b6802db6e72e82b21c36f0cbd73050f40cf68878a79836de6f2df585f68cb4f8a4f
6
+ metadata.gz: 3889d1b96e444ded703aa7900c2b47abc1462aae58dec4ac937103efc2dde2d4d34ea9e6f7532f4e8a0abc755f63b692ff1db96c6ca37416ff15089648927f37
7
+ data.tar.gz: 83589e468d60ae8fde4af1239a9349bf916f09da1a509502483d462ffc33132a2314b68e1f1da169837789e04e1eb7ac71a8d71a8b3c93a835a9343968ce3962
data/README.md CHANGED
@@ -1,6 +1,12 @@
1
- # Pushpad: web push notifications
1
+ # Pushpad: real push notifications for websites
2
2
 
3
- Add web push notifications to your web app using third-party service [Pushpad](https://pushpad.xyz).
3
+ Add native push notifications to your web app using [Pushpad](https://pushpad.xyz).
4
+
5
+ Features:
6
+
7
+ - notifications are delivered even when the user is not on your website
8
+ - users don't need to install any app or plugin
9
+ - you can target specific users or send bulk notifications
4
10
 
5
11
  Currently push notifications work on the following browsers:
6
12
 
@@ -8,12 +14,6 @@ Currently push notifications work on the following browsers:
8
14
  - Firefox (44+)
9
15
  - Safari
10
16
 
11
- Features:
12
-
13
- - users don't need to install any app or plugin
14
- - notifications are delivered even when the user is not on your website
15
- - you can target specific users or send bulk notifications
16
-
17
17
  ## Installation
18
18
 
19
19
  Add this line to your application's Gemfile:
@@ -30,13 +30,13 @@ Or install it yourself as:
30
30
 
31
31
  $ gem install pushpad
32
32
 
33
- ## Usage
33
+ ## Getting started
34
34
 
35
- First you need to sign up to Pushpad and create a project there. It takes 1 minute.
35
+ First you need to sign up to Pushpad and create a project there.
36
36
 
37
37
  Then set your authentication credentials:
38
38
 
39
- ```
39
+ ```ruby
40
40
  Pushpad.auth_token = '5374d7dfeffa2eb49965624ba7596a09'
41
41
  Pushpad.project_id = 123 # set it here or pass it as a param to methods later
42
42
  ```
@@ -44,6 +44,20 @@ Pushpad.project_id = 123 # set it here or pass it as a param to methods later
44
44
  `auth_token` can be found in the user account settings.
45
45
  `project_id` can be found in the project settings on Pushpad. A project is a list of subscriptions. You can set it globally or pass it as a param to methods if your app uses multiple lists (e.g. `Pushpad.path_for current_user, project_id: 123`, `notification.deliver_to user, project_id: 123`).
46
46
 
47
+ ## Collecting user subscriptions
48
+
49
+ ### Custom API
50
+
51
+ Read the [docs](https://pushpad.xyz/docs#custom_api_docs).
52
+
53
+ If you need to generate the HMAC signature for the `uid` you can use this helper:
54
+
55
+ ```ruby
56
+ Pushpad.signature_for current_user.id
57
+ ```
58
+
59
+ ### Simple API
60
+
47
61
  Let users subscribe to your push notifications:
48
62
 
49
63
  ```erb
@@ -56,7 +70,9 @@ Let users subscribe to your push notifications:
56
70
 
57
71
  When a user clicks the link is sent to Pushpad, automatically asked to receive push notifications and redirected back to your website.
58
72
 
59
- Then you can send notifications:
73
+ ## Sending notifications
74
+
75
+ After you have collected the user subscriptions you can send them push notifications:
60
76
 
61
77
  ```ruby
62
78
  notification = Pushpad::Notification.new({
data/lib/pushpad.rb CHANGED
@@ -22,6 +22,11 @@ module Pushpad
22
22
  @@project_id = project_id
23
23
  end
24
24
 
25
+ def self.signature_for(data)
26
+ raise "You must set Pushpad.auth_token" unless Pushpad.auth_token
27
+ OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), self.auth_token, data.to_s)
28
+ end
29
+
25
30
  def self.path(options = {})
26
31
  project_id = options[:project_id] || self.project_id
27
32
  raise "You must set project_id" unless project_id
@@ -29,9 +34,8 @@ module Pushpad
29
34
  end
30
35
 
31
36
  def self.path_for(user, options = {})
32
- raise "You must set Pushpad.auth_token" unless Pushpad.auth_token
33
37
  uid = user.respond_to?(:id) ? user.id : user
34
- uid_signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha1'), self.auth_token, uid.to_s)
38
+ uid_signature = self.signature_for(uid.to_s)
35
39
  "#{self.path(options)}?uid=#{uid}&uid_signature=#{uid_signature}"
36
40
  end
37
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pushpad
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pushpad
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-22 00:00:00.000000000 Z
11
+ date: 2016-03-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: