pushpad 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +20 -4
- data/lib/pushpad/notification.rb +9 -1
- data/pushpad.gemspec +1 -1
- data/spec/pushpad/notification_spec.rb +24 -2
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62b82eeebcf3b9611c204c4752dd44a0beb6b45c
|
4
|
+
data.tar.gz: cf789a7d62f9a8aae45cdb7d5fd758594ad3dd7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfa24ded993111cf8d193336f29e1be39372cf3e9b95a25166b67c9bc142699311fa5c7c35ff75df12a988d526a8345d1825e110f317bd1f40ebc2fd6337285e
|
7
|
+
data.tar.gz: 2a690c2bce05779cf56c5a475853292e0c637ab4dfbeb753513a67d69544fa1ea35ac829b52a63d5b0fb3290ad164bbcdfaccc91288b0d5e15df562945f86729
|
data/README.md
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
# Pushpad - Web Push Notifications
|
1
|
+
# Pushpad - Web Push Notifications
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/pushpad/pushpad-ruby.svg?branch=master)](https://travis-ci.org/pushpad/pushpad-ruby)
|
4
|
-
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/pushpad.svg)](https://badge.fury.io/rb/pushpad)
|
5
|
+
|
5
6
|
[Pushpad](https://pushpad.xyz) is a service for sending push notifications from your web app. It supports the **Push API** (Chrome, Firefox, Opera) and **APNs** (Safari).
|
6
7
|
|
7
8
|
Features:
|
@@ -82,8 +83,21 @@ notification = Pushpad::Notification.new({
|
|
82
83
|
title: "Website Name", # optional, defaults to your project name, max 30 characters
|
83
84
|
target_url: "http://example.com", # optional, defaults to your project website
|
84
85
|
icon_url: "http://example.com/assets/icon.png", # optional, defaults to the project icon
|
86
|
+
image_url: "http://example.com/assets/image.png", # optional, an image to display in the notification content
|
85
87
|
ttl: 604800, # optional, drop the notification after this number of seconds if a device is offline
|
86
|
-
require_interaction: true # optional,
|
88
|
+
require_interaction: true, # optional, prevent Chrome on desktop from automatically closing the notification after a few seconds
|
89
|
+
custom_data: "123", # optional, a string that is passed as an argument to action button callbacks
|
90
|
+
// optional, add some action buttons to the notification
|
91
|
+
// see https://pushpad.xyz/docs/action_buttons
|
92
|
+
actions: [
|
93
|
+
{
|
94
|
+
title: "My Button 1", # max length is 20 characters
|
95
|
+
target_url: "http://example.com/button-link", # optional
|
96
|
+
icon: "http://example.com/assets/button-icon.png", # optional
|
97
|
+
action: "myActionName" # optional
|
98
|
+
}
|
99
|
+
],
|
100
|
+
starred: true # optional, bookmark the notification in the Pushpad dashboard (e.g. to highlight manual notifications)
|
87
101
|
})
|
88
102
|
|
89
103
|
# deliver to a user
|
@@ -109,7 +123,9 @@ notification.deliver_to users, tags: ['tag1 && tag2', 'tag3'] # equal to 'tag1 &
|
|
109
123
|
notification.broadcast
|
110
124
|
```
|
111
125
|
|
112
|
-
|
126
|
+
You can set the default values for most fields in the project settings. See also [the docs](https://pushpad.xyz/docs/rest_api#notifications_api_docs) for more information about notification fields.
|
127
|
+
|
128
|
+
If you try to send a notification to a user ID, but that user is not subscribed, that ID is simply ignored.
|
113
129
|
|
114
130
|
The methods above return an hash:
|
115
131
|
|
data/lib/pushpad/notification.rb
CHANGED
@@ -12,7 +12,7 @@ module Pushpad
|
|
12
12
|
class ReadonlyError < RuntimeError
|
13
13
|
end
|
14
14
|
|
15
|
-
attr_accessor :body, :title, :target_url, :icon_url, :ttl, :require_interaction
|
15
|
+
attr_accessor :body, :title, :target_url, :icon_url, :image_url, :ttl, :require_interaction, :custom_data, :actions, :starred
|
16
16
|
attr_reader :id, :created_at, :scheduled_count, :successfully_sent_count, :opened_count
|
17
17
|
|
18
18
|
def initialize(options)
|
@@ -26,8 +26,12 @@ module Pushpad
|
|
26
26
|
@title = options[:title]
|
27
27
|
@target_url = options[:target_url]
|
28
28
|
@icon_url = options[:icon_url]
|
29
|
+
@image_url = options[:image_url]
|
29
30
|
@ttl = options[:ttl]
|
30
31
|
@require_interaction = options[:require_interaction]
|
32
|
+
@custom_data = options[:custom_data]
|
33
|
+
@actions = options[:actions]
|
34
|
+
@starred = options[:starred]
|
31
35
|
end
|
32
36
|
|
33
37
|
def self.find(id)
|
@@ -108,8 +112,12 @@ module Pushpad
|
|
108
112
|
notification_params["title"] = self.title if self.title
|
109
113
|
notification_params["target_url"] = self.target_url if self.target_url
|
110
114
|
notification_params["icon_url"] = self.icon_url if self.icon_url
|
115
|
+
notification_params["image_url"] = self.image_url if self.image_url
|
111
116
|
notification_params["ttl"] = self.ttl if self.ttl
|
112
117
|
notification_params["require_interaction"] = self.require_interaction unless self.require_interaction.nil?
|
118
|
+
notification_params["custom_data"] = self.custom_data if self.custom_data
|
119
|
+
notification_params["actions"] = self.actions if self.actions
|
120
|
+
notification_params["starred"] = self.starred unless self.starred.nil?
|
113
121
|
|
114
122
|
body = { "notification" => notification_params }
|
115
123
|
body["uids"] = uids if uids
|
data/pushpad.gemspec
CHANGED
@@ -271,8 +271,19 @@ module Pushpad
|
|
271
271
|
title: "Website Name",
|
272
272
|
target_url: "http://example.com",
|
273
273
|
icon_url: "http://example.com/assets/icon.png",
|
274
|
+
image_url: "http://example.com/assets/image.png",
|
274
275
|
ttl: 604800,
|
275
|
-
require_interaction: true
|
276
|
+
require_interaction: true,
|
277
|
+
custom_data: "123",
|
278
|
+
actions: [
|
279
|
+
{
|
280
|
+
title: "My Button 1",
|
281
|
+
target_url: "http://example.com/button-link",
|
282
|
+
icon: "http://example.com/assets/button-icon.png",
|
283
|
+
action: "myActionName"
|
284
|
+
}
|
285
|
+
],
|
286
|
+
starred: true
|
276
287
|
}
|
277
288
|
end
|
278
289
|
let(:notification) { Pushpad::Notification.new notification_params }
|
@@ -332,8 +343,19 @@ module Pushpad
|
|
332
343
|
title: "Website Name",
|
333
344
|
target_url: "http://example.com",
|
334
345
|
icon_url: "http://example.com/assets/icon.png",
|
346
|
+
image_url: "http://example.com/assets/image.png",
|
335
347
|
ttl: 604800,
|
336
|
-
require_interaction: true
|
348
|
+
require_interaction: true,
|
349
|
+
custom_data: "123",
|
350
|
+
actions: [
|
351
|
+
{
|
352
|
+
title: "My Button 1",
|
353
|
+
target_url: "http://example.com/button-link",
|
354
|
+
icon: "http://example.com/assets/button-icon.png",
|
355
|
+
action: "myActionName"
|
356
|
+
}
|
357
|
+
],
|
358
|
+
starred: true
|
337
359
|
}
|
338
360
|
end
|
339
361
|
let(:notification) { Pushpad::Notification.new notification_params }
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pushpad
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pushpad
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: webmock
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description:
|
@@ -45,9 +45,9 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .gitignore
|
49
|
-
- .rspec
|
50
|
-
- .travis.yml
|
48
|
+
- ".gitignore"
|
49
|
+
- ".rspec"
|
50
|
+
- ".travis.yml"
|
51
51
|
- Gemfile
|
52
52
|
- LICENSE.txt
|
53
53
|
- README.md
|
@@ -72,17 +72,17 @@ require_paths:
|
|
72
72
|
- lib
|
73
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ">="
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
84
|
rubyforge_project:
|
85
|
-
rubygems_version: 2.
|
85
|
+
rubygems_version: 2.4.5
|
86
86
|
signing_key:
|
87
87
|
specification_version: 4
|
88
88
|
summary: Web push notifications for Chrome, Firefox and Safari using Pushpad.
|