onsignal 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0dd60aab5dd2f9f314707ff831ef5daa5b5a001eddb01373ea45146354469150
4
+ data.tar.gz: c7e6bf9704c846825fdedb473aa21d692c7a3a33dd375055dc634a47723ee51b
5
+ SHA512:
6
+ metadata.gz: cba30256ba8470dcec04dc3fce6332e9191bf1d425d0e4d1cca3c74cdbb3017a0d4a409cff89259709da2fb202869ef24695866cc3ed1c5217492604f3a113f5
7
+ data.tar.gz: 514059dc5200cee8adba10b81bdf7af50a666cbf33c25daeb69cf03a5be53f63fa442baf0f1899d4ecac519f216ab5c7943fb8d9c350cf17bd37f8fdd5d21c9b
@@ -0,0 +1,112 @@
1
+ # Changelog
2
+
3
+ ### master
4
+
5
+ * nothing yet
6
+
7
+ ### 5.0.0 - 2018/02/09
8
+
9
+ * features
10
+ * new ES6 JavaScript API
11
+ * streamlined `Device` model (Rails API)
12
+
13
+ ### 4.0.1 - 2018/02/08
14
+
15
+ * bugfixes
16
+ * fixed not exporting `init()` function
17
+
18
+ ### 4.0.0 - 2018/02/08
19
+
20
+ * features
21
+ * add ES6/Webpack support
22
+
23
+ ### 3.2.0 - 2018/01/21
24
+
25
+ * features
26
+ * add `OneSignalSubscribed()` function
27
+
28
+ ### 3.1.5 - 2018/01/06
29
+
30
+ * enhancements
31
+ * cleaning up gem files
32
+
33
+ ### 3.1.4 - 2018/01/02
34
+
35
+ * bugfixes
36
+ * fixed overriding `set_device_owner` method
37
+
38
+ ### 3.1.3 - 2018/01/02
39
+
40
+ * bugfixes
41
+ * fixed overriding `set_device_owner` method
42
+
43
+ ### 3.1.2 - 2017/12/28
44
+
45
+ * bugfixes
46
+ * fix `has_devices` method
47
+
48
+ ### 3.1.1 - 2017/12/28
49
+
50
+ * bugfixes
51
+ * fix `has_devices` method
52
+
53
+ ### 3.1.0 - 2017/12/27
54
+
55
+ * features
56
+ * add `has_devices` method
57
+
58
+ ### 3.0.2 - 2017/12/21
59
+
60
+ * bugfixes
61
+ * fixed `undefined method 'set_device_owner' for ApplicationController:Class`
62
+
63
+ ### 3.0.1 - 2017/12/21
64
+
65
+ * bugfixes
66
+ * custom `set_device_owner` method was not overriding default
67
+
68
+ ### 3.0.0 - 2017/12/21
69
+
70
+ * features
71
+ * made Devise optional
72
+ * added `owner` association to `Device` model
73
+ * enhancements
74
+ * renamed elements of the javascript API
75
+
76
+ ### 2.0.1 - 2017/12/20
77
+
78
+ * bugfixes
79
+ * fixed `undefined method 'permission=' for #<Device>`
80
+
81
+ ### 2.0.0 - 2017/12/19
82
+
83
+ * features
84
+ * automatically include helpers and concerns
85
+ * configuration by passing a block to `configure`
86
+ * introducing `Device` activerecord model
87
+ * enhancements
88
+ * rename `current_onesignal` method to `current_device`
89
+
90
+ ### 1.2.1 - 2017/12/18
91
+
92
+ * enhancements
93
+ * add more configuration options
94
+
95
+ ### 1.1.1 - 2017/12/18
96
+
97
+ * bugfixes
98
+ * fixed use of wrong class name
99
+
100
+ ### 1.1.0 - 2017/12/18
101
+
102
+ * enhancements
103
+ * dont't include keys in `current_onesignal` hash whose values are `nil`
104
+
105
+ ### 1.0.1 - 2017/12/18
106
+
107
+ * bugfixes
108
+ * fixed `Stack Level too deep` when using `current_onesignal`
109
+
110
+ ### 1.0.0 - 2017/12/18
111
+
112
+ * initial release
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Jonas Hübotter
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,254 @@
1
+ # OnSignal
2
+
3
+ ![NPM Version](https://img.shields.io/npm/v/onsignal.svg) [![Gem Version](https://badge.fury.io/rb/onsignal.svg)](https://badge.fury.io/rb/onsignal) <img src="https://travis-ci.org/jonhue/onsignal.svg?branch=master" />
4
+
5
+ A OneSignal API wrapper simplifying user targeted cross platform notifications. OnSignal consists of a JavaScript and a Rails API:
6
+
7
+ * [JavaScript API](#javascript-api): Handle user subscriptions to OneSignal in your frontend code.
8
+ * [Rails API](#javascript-api): Attach OneSignal players to user records provided by an authentication solution.
9
+
10
+ ---
11
+
12
+ ## Table of Contents
13
+
14
+ * [JavaScript API](#javascript-api)
15
+ * [Overview](#overview)
16
+ * [Subscribing](#subscribing)
17
+ * [Unsubscribing](#unsubscribing)
18
+ * [Additional functions](#additional-functions)
19
+ * [Rails API](#javascript-api)
20
+ * [Installation](#installation)
21
+ * [User associations](#user-associations)
22
+ * [Devices](#devices)
23
+ * [Methods](#methods)
24
+ * [Helpers](#helpers)
25
+ * [Configuration](#configuration)
26
+ * [To Do](#to-do)
27
+ * [Contributing](#contributing)
28
+ * [Contributors](#contributors)
29
+ * [Semantic versioning](#semantic-versioning)
30
+ * [License](#license)
31
+
32
+ ---
33
+
34
+ ## JavaScript API
35
+
36
+ Handle user subscriptions to OneSignal in your frontend code.
37
+
38
+ ### Overview
39
+
40
+ ```javascript
41
+ import OnSignal from 'onsignal';
42
+ let onSignal = new OnSignal( 'OneSignal App ID', {
43
+ autoRegister: false
44
+ });
45
+
46
+ // Object to call OneSignal API from
47
+ onSignal.oneSignal;
48
+
49
+ // Current users player ID
50
+ onSignal.playerId;
51
+
52
+ // Current users permission
53
+ onSignal.permission;
54
+ ```
55
+
56
+ #### Options
57
+
58
+ Pass options to OneSignal's `push(['init', {...}])` function as a hash. Default values are:
59
+
60
+ * `autoRegister` Automatically try to subscribe the user when loading a page. Accepts a boolean. Defaults to `false`.
61
+ * `persistNotification` Automatically dismiss notifications after ~20 seconds in Chrome Desktop v47+. Accepts a boolean. Defaults to `false`.
62
+ * `welcomeNotification` Hash configuring the default OneSignal welcome notification. Accepts a hash. Defaults to `{ disable: true }`.
63
+ * `notifyButton` Hash configuring the default OneSignal notify button at the bottom right of the screen. Accepts a hash. Defaults to `{ enable: false }`.
64
+
65
+ ### Subscribing
66
+
67
+ Just call `onSignal.subscribe();` and OneSignal will ask your user for permission to send notifications if he is not subscribed yet. _On the following request an existing `Device` object will either get updated or a new one will get created. (if using the Rails API)_
68
+
69
+ #### Options
70
+
71
+ Pass options to OneSignal's `registerForPushNotifications()` function as a hash. Default values are:
72
+
73
+ * `modalPrompt` Whether or not to use a custom prompt instead of the browsers default to ask for permission. Accepts a boolean. Defaults to `false`.
74
+
75
+ ### Unsubscribing
76
+
77
+ **Note:** You most likely don't want to let your users unsubscribe from receiving notifications, but instead allow them to manually disable receiving any new notifications. For that purpose use the [notifications-rails](https://github.com/jonhue/notifications-rails) gem, which adds a notification API and detailed user settings.
78
+
79
+ If you want to completely remove a user from OneSignal, call `onSignal.unsubscribe();`.
80
+
81
+ ### Additional functions
82
+
83
+ ```javascript
84
+ // Check if a user is subscribed to OneSignal
85
+ onSignal.isSubscribed()
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Rails API
91
+
92
+ Attach OneSignal players to user records provided by an authentication solution.
93
+
94
+ ### Installation
95
+
96
+ OnSignal works with Rails 5 onwards. You can add it to your `Gemfile` with:
97
+
98
+ ```ruby
99
+ gem 'onsignal'
100
+ ```
101
+
102
+ And then execute:
103
+
104
+ $ bundle
105
+
106
+ Or install it yourself as:
107
+
108
+ $ gem install onsignal
109
+
110
+ If you always want to be up to date fetch the latest from GitHub in your `Gemfile`:
111
+
112
+ ```ruby
113
+ gem 'onsignal', github: 'jonhue/onsignal'
114
+ ```
115
+
116
+ Now run the generator:
117
+
118
+ $ rails g onsignal
119
+
120
+ To wrap things up, migrate the changes into your database:
121
+
122
+ $ rails db:migrate
123
+
124
+ ### User associations
125
+
126
+ Define an association in models whose objects are supposed to be associated with OneSignal players. For example `Admin` in `app/models/admin.rb`.
127
+
128
+ ```ruby
129
+ class Admin < ApplicationRecord
130
+ onsignal
131
+ end
132
+ ```
133
+
134
+ Next attach a user object by defining a `set_onsignal_user` method. Let's say model is named `Admin` and `current_admin` is available at controller level. Just add a method to your `ApplicationController`:
135
+
136
+ ```ruby
137
+ def set_onsignal_user
138
+ current_admin if current_admin
139
+ end
140
+ ```
141
+
142
+ **Note:** If a `current_user` method is available at controller level this method is not required.
143
+
144
+ You are now able to get OneSignal players for a specific user:
145
+
146
+ ```ruby
147
+ a = Admin.first
148
+
149
+ # All device records of a user
150
+ a.devices
151
+
152
+ # All OneSignal Player ID's of a user returned as an array
153
+ a.onesignal_player_ids
154
+ ```
155
+
156
+ ### Devices
157
+
158
+ OnSignal introduces a `Device` ActiveRecord model. You can [configure](#configuration) its name. Every record of an associated user class can have multiple devices - one for each device / browser they enabled OneSignal on.
159
+
160
+ #### Methods
161
+
162
+ ```ruby
163
+ d = Device.first
164
+
165
+ # Returns user associated with device. Can return `nil`.
166
+ d.owner
167
+
168
+ # Returns OneSignal player id
169
+ d.onesignal_id
170
+
171
+ # Returns OneSignal permission ( `granted` / `denied` / `default` )
172
+ d.onesignal_permission
173
+
174
+ # Some timestamps
175
+ d.last_used
176
+ d.created_at
177
+ d.updated_at
178
+
179
+
180
+ # If device is ready to receive notifications
181
+ d.onesignal_enabled?
182
+
183
+ # If device has been disabled to receive notifications
184
+ d.onesignal_disabled?
185
+
186
+ # If device has been set previously to receive notifications or not
187
+ d.onesignal_set?
188
+ ```
189
+
190
+ #### Helpers
191
+
192
+ In your controllers and views you can access a `current_onsignal` method that returns the `Device` object of the current OneSignal subscription. If the user browsing your site is not subscribed to OneSignal, `current_onsignal` returns an uncommitted `Device` object with some helpful information, like the `permission` attribute, set.
193
+
194
+ ### Configuration
195
+
196
+ You can configure OnSignal by passing a block to `configure`. This can be done in `config/initializers/onsignal.rb`:
197
+
198
+ ```ruby
199
+ OnSignal.configure do |config|
200
+ config.device_const = 'Device'
201
+ end
202
+ ```
203
+
204
+ * `device_const` Name of the constant exposing devices. Takes a constant name (string). Defaults to `'Device'`.
205
+
206
+ ---
207
+
208
+ ## To Do
209
+
210
+ [Here](https://github.com/jonhue/devise-onesignal/projects/1) is the full list of current projects.
211
+
212
+ To propose your ideas, initiate the discussion by adding a [new issue](https://github.com/jonhue/devise-onesignal/issues/new).
213
+
214
+ ---
215
+
216
+ ## Contributing
217
+
218
+ We hope that you will consider contributing to devise-onesignal. Please read this short overview for some information about how to get started:
219
+
220
+ [Learn more about contributing to this repository](https://github.com/jonhue/devise-onesignal/blob/master/CONTRIBUTING.md), [Code of Conduct](https://github.com/jonhue/devise-onesignal/blob/master/CODE_OF_CONDUCT.md)
221
+
222
+ ### Contributors
223
+
224
+ Give the people some :heart: who are working on this project. See them all at:
225
+
226
+ https://github.com/jonhue/devise-onesignal/graphs/contributors
227
+
228
+ ### Semantic Versioning
229
+
230
+ devise-onesignal follows Semantic Versioning 2.0 as defined at http://semver.org.
231
+
232
+ ## License
233
+
234
+ MIT License
235
+
236
+ Copyright (c) 2017 Jonas Hübotter
237
+
238
+ Permission is hereby granted, free of charge, to any person obtaining a copy
239
+ of this software and associated documentation files (the "Software"), to deal
240
+ in the Software without restriction, including without limitation the rights
241
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
242
+ copies of the Software, and to permit persons to whom the Software is
243
+ furnished to do so, subject to the following conditions:
244
+
245
+ The above copyright notice and this permission notice shall be included in all
246
+ copies or substantial portions of the Software.
247
+
248
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
249
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
250
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
251
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
252
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
253
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
254
+ SOFTWARE.
@@ -0,0 +1,26 @@
1
+ module OnSignalController
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ before_action :set_onsignal
7
+ end
8
+
9
+ def set_onsignal_user
10
+ current_user if current_user
11
+ end
12
+
13
+ private
14
+
15
+ def set_onsignal
16
+ unless cookies[:oneSignalPlayerId].nil?
17
+ onesignal_player_id = cookies[:oneSignalPlayerId]
18
+ device = OnSignal.configuration.device_const.constantize.find_or_create_by! onesignal_id: onesignal_player_id
19
+ device.onesignal_permission = cookies[:oneSignalPlayerPermission]
20
+ device.last_used = Time.now
21
+ device.owner = set_onesignal_user
22
+ device.save!
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,15 @@
1
+ module OnSignalHelper
2
+
3
+ def current_onsignal
4
+ if cookies[:oneSignalPlayerId].nil?
5
+ device = OnSignal.configuration.device_const.constantize.new
6
+ device.onesignal_permission = cookies[:oneSignalPlayerPermission]
7
+ device.owner = set_onsignal_owner
8
+ device.last_used = Time.now
9
+ else
10
+ device = OnSignal.configuration.device_const.constantize.find_by onesignal_id: cookies[:oneSignalPlayerId]
11
+ end
12
+ device
13
+ end
14
+
15
+ end
@@ -0,0 +1,24 @@
1
+ module OnSignalModel
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def onsignal
7
+ has_many :devices, as: :owner, class_name: OnSignal.configuration.device_const, dependent: :destroy
8
+ include OnSignal::Owner::InstanceMethods
9
+ end
10
+ end
11
+
12
+ module InstanceMethods
13
+
14
+ def onesignal_player_ids
15
+ onesignal_player_ids = []
16
+ self.devices.each do |device|
17
+ onesignal_player_ids << device.onesignal_id
18
+ end
19
+ onesignal_player_ids
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,15 @@
1
+ class OnSignal::Device < ApplicationRecord
2
+
3
+ def onesignal_enabled?
4
+ self.onesignal_permission == 'granted'
5
+ end
6
+ def onesignal_disabled?
7
+ self.onesignal_permission == 'denied'
8
+ end
9
+ def onesignal_set?
10
+ !self.onesignal_permission == 'default'
11
+ end
12
+
13
+ belongs_to :owner, polymorphic: true, optional: true
14
+
15
+ end
@@ -0,0 +1,42 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ class OnsignalGenerator < Rails::Generators::Base
5
+
6
+ include Rails::Generators::Migration
7
+
8
+ source_root File.join File.dirname(__FILE__), 'templates'
9
+ desc 'Install OnSignal'
10
+
11
+ def self.next_migration_number dirname
12
+ if ActiveRecord::Base.timestamped_migrations
13
+ Time.now.utc.strftime '%Y%m%d%H%M%S'
14
+ else
15
+ "%.3d" % ( current_migration_number(dirname) + 1 )
16
+ end
17
+ end
18
+
19
+ def create_initializer
20
+ template 'initializer.rb', 'config/initializers/onsignal.rb'
21
+ end
22
+
23
+ def create_device_migration_file
24
+ migration_template 'devices_migration.rb.erb', 'db/migrate/onsignal_migration.rb', migration_version: migration_version
25
+ end
26
+ def create_device_model
27
+ template 'device_model.rb', 'app/models/device.rb'
28
+ end
29
+
30
+ def show_readme
31
+ readme 'README.md'
32
+ end
33
+
34
+ private
35
+
36
+ def migration_version
37
+ if Rails.version >= '5.0.0'
38
+ "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
39
+ end
40
+ end
41
+
42
+ end
@@ -0,0 +1 @@
1
+ Now run `rails db:migrate` to add onsignal to your database.
@@ -0,0 +1,2 @@
1
+ class Device < OnSignal::Device
2
+ end
@@ -0,0 +1,16 @@
1
+ class OnsignalMigration < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :devices do |t|
4
+
5
+ t.references :owner, polymorphic: true, index: true
6
+
7
+ t.string :onesignal_id, index: true, unique: true
8
+ t.string :onesignal_permission
9
+
10
+ t.datetime :last_used
11
+
12
+ t.timestamps
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ OnSignal.configure do |config|
2
+
3
+ # Name of the constant exposing devices
4
+ config.device_const = 'Device'
5
+
6
+ end
@@ -0,0 +1,21 @@
1
+ module OnSignal
2
+
3
+ class << self
4
+ attr_accessor :configuration
5
+ end
6
+
7
+ def self.configure
8
+ self.configuration ||= Configuration.new
9
+ yield configuration
10
+ end
11
+
12
+ class Configuration
13
+
14
+ attr_accessor :device_const
15
+
16
+ def initialize
17
+ @device_const = 'Device'
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,6 @@
1
+ require 'rails/railtie'
2
+
3
+ module OnSignal
4
+ class Engine < ::Rails::Engine
5
+ end
6
+ end
@@ -0,0 +1,17 @@
1
+ require 'rails/railtie'
2
+
3
+ module OnSignal
4
+ class Railtie < Rails::Railtie
5
+
6
+ initializer 'onsignal.initialize' do
7
+ ActiveSupport.on_load :action_controller do
8
+ include OnSignalHelper
9
+ include OnSignalController
10
+ end
11
+ ActiveSupport.on_load :active_record do
12
+ include OnSignalModel
13
+ end
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ module OnSignal
2
+
3
+ VERSION = '5.0.0'
4
+
5
+ end
@@ -0,0 +1,10 @@
1
+ require 'on_signal/version'
2
+
3
+ module OnSignal
4
+
5
+ require 'on_signal/configuration'
6
+
7
+ require 'on_signal/engine'
8
+ require 'on_signal/railtie'
9
+
10
+ end
metadata ADDED
@@ -0,0 +1,179 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: onsignal
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jonas Hübotter
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activerecord
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: actionview
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: actionpack
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '5.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '5.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.7'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.7'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.52'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.52'
111
+ description: OneSignal API wrapper simplifying user targeted cross platform notifications.
112
+ email: me@jonhue.me
113
+ executables: []
114
+ extensions: []
115
+ extra_rdoc_files: []
116
+ files:
117
+ - CHANGELOG.md
118
+ - LICENSE
119
+ - README.md
120
+ - app/controllers/concerns/on_signal_controller.rb
121
+ - app/helpers/on_signal_helper.rb
122
+ - app/models/concerns/on_signal_model.rb
123
+ - app/models/on_signal/device.rb
124
+ - lib/generators/onsignal_generator.rb
125
+ - lib/generators/templates/README.md
126
+ - lib/generators/templates/device_model.rb
127
+ - lib/generators/templates/devices_migration.rb.erb
128
+ - lib/generators/templates/initializer.rb
129
+ - lib/on_signal/configuration.rb
130
+ - lib/on_signal/engine.rb
131
+ - lib/on_signal/railtie.rb
132
+ - lib/on_signal/version.rb
133
+ - lib/onsignal.rb
134
+ homepage: https://github.com/jonhue/onsignal
135
+ licenses:
136
+ - MIT
137
+ metadata: {}
138
+ post_install_message: |
139
+ **Thank you for installing OnSignal!**
140
+
141
+
142
+ There are four wo more steps to take:
143
+
144
+ 1) Run `rails g devise_onesignal` and `rails db:migrate`
145
+ 2) Enter your OneSignal App ID in config/initializers/devise-onesignal.rb
146
+ 3) Add:
147
+
148
+ import 'devise-onesignal/dist/OneSignalSDK';
149
+ import * as deviseOneSignal from 'devise-onesignal';
150
+
151
+ to your webpack pack in app/javascript/packs/application.js
152
+ 4) Add:
153
+
154
+ has_devices
155
+
156
+ to your authentication model
157
+
158
+
159
+ Learn more at https://github.com/jonhue/devise-onesignal
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '2.3'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 2.7.4
176
+ signing_key:
177
+ specification_version: 4
178
+ summary: OneSignal API wrapper simplifying user targeted cross platform notifications
179
+ test_files: []