pusher-push-notifications 0.1.0
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 +7 -0
- data/.coveralls.yml +1 -0
- data/.env.sample +2 -0
- data/.gitignore +16 -0
- data/.rspec +3 -0
- data/.rubocop.yml +23 -0
- data/.travis.yml +5 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +126 -0
- data/LICENSE.txt +21 -0
- data/README.md +89 -0
- data/Rakefile +8 -0
- data/bin/console +21 -0
- data/bin/setup +8 -0
- data/lib/pusher.rb +6 -0
- data/lib/pusher/push_notifications.rb +36 -0
- data/lib/pusher/push_notifications/client.rb +51 -0
- data/lib/pusher/push_notifications/use_cases/notify.rb +33 -0
- data/lib/pusher/push_notifications/version.rb +7 -0
- data/pusher-push-notifications.gemspec +38 -0
- metadata +235 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 327101633fef796f605ccc219f32a56c0c3561837add2e042cc4f8cf14a75b55
|
4
|
+
data.tar.gz: eb5f8939d9a67898f6d9195a82eba30ecb067c5f22a28b4544c4dc24fe7f64d5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 23ceec5fce53e639bd3ffb0c0f65454196b41aa228e70a093d8c15bcf2c818c4bb151cd0e88925bd154ceaa29db01f3bc2fd56168ac749626fdf173ce4112580
|
7
|
+
data.tar.gz: ae07f4be5f406d6475c5150fa88f7fe4da55a6e74ab06b2d699e694ed6ec5f404a034577852eb857ae5db47af44bd01c8def3ef57047eb0c7262feaa842e6534
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
repo_token: SvS3UyLJls0uc3J7nJgti4ypWxKosxo7U
|
data/.env.sample
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
Documentation:
|
2
|
+
Enabled: false
|
3
|
+
|
4
|
+
AllCops:
|
5
|
+
TargetRubyVersion: 2.4.0
|
6
|
+
|
7
|
+
Metrics/LineLength:
|
8
|
+
Max: 100
|
9
|
+
|
10
|
+
Metrics/MethodLength:
|
11
|
+
Exclude:
|
12
|
+
- 'spec/**/*.rb'
|
13
|
+
|
14
|
+
Exclude:
|
15
|
+
- 'spec/**/*.rb'
|
16
|
+
|
17
|
+
Metrics/ModuleLength:
|
18
|
+
Exclude:
|
19
|
+
- 'spec/**/*.rb'
|
20
|
+
|
21
|
+
Metrics/BlockLength:
|
22
|
+
Exclude:
|
23
|
+
- 'spec/**/*.rb'
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
pusher-push-notifications (0.1.0)
|
5
|
+
caze
|
6
|
+
rest-client
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
activesupport (5.1.4)
|
12
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
|
+
i18n (~> 0.7)
|
14
|
+
minitest (~> 5.1)
|
15
|
+
tzinfo (~> 1.1)
|
16
|
+
addressable (2.5.2)
|
17
|
+
public_suffix (>= 2.0.2, < 4.0)
|
18
|
+
ast (2.3.0)
|
19
|
+
byebug (9.1.0)
|
20
|
+
caze (0.2.1)
|
21
|
+
activesupport (>= 3)
|
22
|
+
coderay (1.1.2)
|
23
|
+
concurrent-ruby (1.0.5)
|
24
|
+
coveralls (0.8.21)
|
25
|
+
json (>= 1.8, < 3)
|
26
|
+
simplecov (~> 0.14.1)
|
27
|
+
term-ansicolor (~> 1.3)
|
28
|
+
thor (~> 0.19.4)
|
29
|
+
tins (~> 1.6)
|
30
|
+
crack (0.4.3)
|
31
|
+
safe_yaml (~> 1.0.0)
|
32
|
+
diff-lcs (1.3)
|
33
|
+
docile (1.1.5)
|
34
|
+
domain_name (0.5.20170404)
|
35
|
+
unf (>= 0.0.5, < 1.0.0)
|
36
|
+
dotenv (2.2.1)
|
37
|
+
hashdiff (0.3.7)
|
38
|
+
http-cookie (1.0.3)
|
39
|
+
domain_name (~> 0.5)
|
40
|
+
i18n (0.9.1)
|
41
|
+
concurrent-ruby (~> 1.0)
|
42
|
+
json (2.1.0)
|
43
|
+
method_source (0.9.0)
|
44
|
+
mime-types (3.1)
|
45
|
+
mime-types-data (~> 3.2015)
|
46
|
+
mime-types-data (3.2016.0521)
|
47
|
+
minitest (5.10.3)
|
48
|
+
netrc (0.11.0)
|
49
|
+
parallel (1.12.1)
|
50
|
+
parser (2.4.0.2)
|
51
|
+
ast (~> 2.3)
|
52
|
+
powerpack (0.1.1)
|
53
|
+
pry (0.11.3)
|
54
|
+
coderay (~> 1.1.0)
|
55
|
+
method_source (~> 0.9.0)
|
56
|
+
pry-byebug (3.5.1)
|
57
|
+
byebug (~> 9.1)
|
58
|
+
pry (~> 0.10)
|
59
|
+
public_suffix (3.0.1)
|
60
|
+
rainbow (3.0.0)
|
61
|
+
rake (10.5.0)
|
62
|
+
rest-client (2.0.2)
|
63
|
+
http-cookie (>= 1.0.2, < 2.0)
|
64
|
+
mime-types (>= 1.16, < 4.0)
|
65
|
+
netrc (~> 0.8)
|
66
|
+
rspec (3.7.0)
|
67
|
+
rspec-core (~> 3.7.0)
|
68
|
+
rspec-expectations (~> 3.7.0)
|
69
|
+
rspec-mocks (~> 3.7.0)
|
70
|
+
rspec-core (3.7.0)
|
71
|
+
rspec-support (~> 3.7.0)
|
72
|
+
rspec-expectations (3.7.0)
|
73
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
74
|
+
rspec-support (~> 3.7.0)
|
75
|
+
rspec-mocks (3.7.0)
|
76
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
77
|
+
rspec-support (~> 3.7.0)
|
78
|
+
rspec-support (3.7.0)
|
79
|
+
rubocop (0.52.0)
|
80
|
+
parallel (~> 1.10)
|
81
|
+
parser (>= 2.4.0.2, < 3.0)
|
82
|
+
powerpack (~> 0.1)
|
83
|
+
rainbow (>= 2.2.2, < 4.0)
|
84
|
+
ruby-progressbar (~> 1.7)
|
85
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
86
|
+
ruby-progressbar (1.9.0)
|
87
|
+
safe_yaml (1.0.4)
|
88
|
+
simplecov (0.14.1)
|
89
|
+
docile (~> 1.1.0)
|
90
|
+
json (>= 1.8, < 3)
|
91
|
+
simplecov-html (~> 0.10.0)
|
92
|
+
simplecov-html (0.10.2)
|
93
|
+
term-ansicolor (1.6.0)
|
94
|
+
tins (~> 1.0)
|
95
|
+
thor (0.19.4)
|
96
|
+
thread_safe (0.3.6)
|
97
|
+
tins (1.16.3)
|
98
|
+
tzinfo (1.2.4)
|
99
|
+
thread_safe (~> 0.1)
|
100
|
+
unf (0.1.4)
|
101
|
+
unf_ext
|
102
|
+
unf_ext (0.0.7.4)
|
103
|
+
unicode-display_width (1.3.0)
|
104
|
+
vcr (3.0.3)
|
105
|
+
webmock (3.1.1)
|
106
|
+
addressable (>= 2.3.6)
|
107
|
+
crack (>= 0.3.2)
|
108
|
+
hashdiff
|
109
|
+
|
110
|
+
PLATFORMS
|
111
|
+
ruby
|
112
|
+
|
113
|
+
DEPENDENCIES
|
114
|
+
bundler (~> 1.16)
|
115
|
+
coveralls (~> 0.8.21)
|
116
|
+
dotenv (~> 2.2, >= 2.2.1)
|
117
|
+
pry-byebug
|
118
|
+
pusher-push-notifications!
|
119
|
+
rake (~> 10.0)
|
120
|
+
rspec (~> 3.0)
|
121
|
+
rubocop
|
122
|
+
vcr (~> 3.0, >= 3.0.3)
|
123
|
+
webmock (~> 3.0, >= 3.0.1)
|
124
|
+
|
125
|
+
BUNDLED WITH
|
126
|
+
1.16.0
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2017 Lucas Medeiros
|
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
|
13
|
+
all 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
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
# PushNotifications [](https://travis-ci.org/lucasmedeirosleite/push-notifications-ruby) [](https://coveralls.io/github/lucasmedeirosleite/push-notifications-ruby?branch=master)
|
2
|
+
|
3
|
+
Push notifications using the Pusher system.
|
4
|
+
|
5
|
+
## Getting started
|
6
|
+
|
7
|
+
The Push notifications system is still in BETA and it's free, but first you need to create an account on pusher (click [here](https://dash.pusher.com)).
|
8
|
+
With an account created you can create a new push notification instance (you will need to upload the apns certificates for apple and the server keys for Google's Firebase Cloud Messaging). Also you will need the `instance id` and `secret key` so the gem can be configured properly.
|
9
|
+
|
10
|
+
**NOTE**: The official Pusher [gem](https://github.com/pusher/pusher-http-ruby) currently does not support push notifications (probably because they moved it to another dashboard), you need to rely on the WEB API (that's why this gem was created).
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
Add this line to your application's Gemfile:
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
gem 'pusher-push-notifications'
|
18
|
+
```
|
19
|
+
|
20
|
+
## Configuration
|
21
|
+
|
22
|
+
This configuration can be done anywhere you want, but if you are using rails the better place to put it is inside an initializer
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
Pusher::PushNotifications.configure do |config|
|
26
|
+
config.instance_id = ENV['PUSHER_INSTANCE_ID'] # or the value directly :)
|
27
|
+
config.secret_key = ENV['PUSHER_SECRET_KEY']
|
28
|
+
end
|
29
|
+
```
|
30
|
+
|
31
|
+
Where `instance_id` and `secret_key` are the values of the instance you created in the push notifications dashboard
|
32
|
+
|
33
|
+
## Usage
|
34
|
+
|
35
|
+
After the configuration is done you can push notifications like this:
|
36
|
+
|
37
|
+
```ruby
|
38
|
+
data = {
|
39
|
+
apns: {
|
40
|
+
aps: {
|
41
|
+
alert: {
|
42
|
+
title: 'Hello',
|
43
|
+
body: 'Hello, world!'
|
44
|
+
}
|
45
|
+
}
|
46
|
+
},
|
47
|
+
fcm: {
|
48
|
+
notification: {
|
49
|
+
title: 'Hello',
|
50
|
+
body: 'Hello, world!'
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
Pusher::PushNotifications.notify(interests: ['my-interest'], payload: data)
|
56
|
+
```
|
57
|
+
|
58
|
+
The return of this call is a ruby struct containing the http status code (`status`) the response body (`content`) and an `ok?` attribute saying if the notification was successful or not.
|
59
|
+
|
60
|
+
**NOTE**: It's optional but you can insert a `data` key at the same level of the `aps` and `notification` keys with a custom value (A json for example), but keep in mind that you have the limitation of 10kb per message.
|
61
|
+
|
62
|
+
## Errors
|
63
|
+
|
64
|
+
The errors statuses can be:
|
65
|
+
|
66
|
+
HTTP Status | Reason
|
67
|
+
--- | ---
|
68
|
+
401 | Incorrect secret key
|
69
|
+
400 | Payload too big (10Kb limit), Payload invalid, Payload in a wrong schema, instance_id missing
|
70
|
+
404 | Instance not found
|
71
|
+
500 | Internal server error
|
72
|
+
|
73
|
+
## TODO
|
74
|
+
|
75
|
+
Add an optional parameter containing the webhook url to be send together with the payload.
|
76
|
+
|
77
|
+
## Development
|
78
|
+
|
79
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
80
|
+
|
81
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
82
|
+
|
83
|
+
## Contributing
|
84
|
+
|
85
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/lucasmedeirosleite/push-notifications-ruby.
|
86
|
+
|
87
|
+
## License
|
88
|
+
|
89
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'bundler/setup'
|
5
|
+
|
6
|
+
require 'dotenv'
|
7
|
+
Dotenv.load
|
8
|
+
|
9
|
+
require 'pusher'
|
10
|
+
|
11
|
+
Pusher::PushNotifications.configure do |config|
|
12
|
+
config.instance_id = ENV['PUSHER_INSTANCE_ID']
|
13
|
+
config.secret_key = ENV['PUSHER_SECRET_KEY']
|
14
|
+
end
|
15
|
+
|
16
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
17
|
+
# with your gem easier. You can also use a different console, if you like.
|
18
|
+
|
19
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
20
|
+
require 'pry'
|
21
|
+
Pry.start
|
data/bin/setup
ADDED
data/lib/pusher.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'caze'
|
4
|
+
|
5
|
+
require_relative './push_notifications/client'
|
6
|
+
require_relative './push_notifications/use_cases/notify'
|
7
|
+
require_relative './push_notifications/version'
|
8
|
+
|
9
|
+
module Pusher
|
10
|
+
module PushNotifications
|
11
|
+
include Caze
|
12
|
+
|
13
|
+
class PushError < RuntimeError; end
|
14
|
+
|
15
|
+
has_use_case :notify, UseCases::Notify
|
16
|
+
|
17
|
+
class << self
|
18
|
+
attr_reader :instance_id, :secret_key
|
19
|
+
|
20
|
+
def configure
|
21
|
+
yield(self)
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
def instance_id=(instance_id)
|
26
|
+
raise PushError, 'Invalid instance id' if instance_id.nil? || instance_id.delete(' ').empty?
|
27
|
+
@instance_id = instance_id
|
28
|
+
end
|
29
|
+
|
30
|
+
def secret_key=(secret_key)
|
31
|
+
raise PushError, 'Invalid secret key' if secret_key.nil? || secret_key.delete(' ').empty?
|
32
|
+
@secret_key = secret_key
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'forwardable'
|
4
|
+
require 'json'
|
5
|
+
require 'rest-client'
|
6
|
+
|
7
|
+
module Pusher
|
8
|
+
module PushNotifications
|
9
|
+
class Client
|
10
|
+
extend Forwardable
|
11
|
+
|
12
|
+
BASE_URL = 'pushnotifications.pusher.com/publish_api/v1/instances'
|
13
|
+
|
14
|
+
Response = Struct.new(:status, :content, :ok?)
|
15
|
+
|
16
|
+
def initialize(config: PushNotifications)
|
17
|
+
@config = config
|
18
|
+
end
|
19
|
+
|
20
|
+
def post(resource, payload = {})
|
21
|
+
url = build_url(resource)
|
22
|
+
body = payload.to_json
|
23
|
+
RestClient::Request.execute(
|
24
|
+
method: :post, url: url,
|
25
|
+
payload: body, headers: headers
|
26
|
+
) do |response|
|
27
|
+
status = response.code
|
28
|
+
body = JSON.parse(response.body)
|
29
|
+
Response.new(status, body, status == 200 ? true : false)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
attr_reader :config
|
36
|
+
def_delegators :@config, :instance_id, :secret_key
|
37
|
+
|
38
|
+
def build_url(resource)
|
39
|
+
"https://#{instance_id}.#{BASE_URL}/#{instance_id}/#{resource}"
|
40
|
+
end
|
41
|
+
|
42
|
+
def headers
|
43
|
+
{
|
44
|
+
content_type: 'application/json',
|
45
|
+
accept: :json,
|
46
|
+
Authorization: "Bearer #{secret_key}"
|
47
|
+
}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'caze'
|
4
|
+
|
5
|
+
module Pusher
|
6
|
+
module PushNotifications
|
7
|
+
module UseCases
|
8
|
+
class Notify
|
9
|
+
include Caze
|
10
|
+
|
11
|
+
export :call, as: :notify
|
12
|
+
|
13
|
+
def initialize(interests:, payload: {})
|
14
|
+
@interests = interests
|
15
|
+
@payload = payload
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
data = { interests: interests }.merge!(payload)
|
20
|
+
client.post('publishes', data)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
attr_reader :interests, :payload
|
26
|
+
|
27
|
+
def client
|
28
|
+
@_client ||= PushNotifications::Client.new
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
lib = File.expand_path('../lib', __FILE__)
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
|
+
require 'pusher/push_notifications/version'
|
7
|
+
|
8
|
+
Gem::Specification.new do |spec|
|
9
|
+
spec.name = 'pusher-push-notifications'
|
10
|
+
spec.version = Pusher::PushNotifications::VERSION
|
11
|
+
spec.authors = ['Lucas Medeiros']
|
12
|
+
spec.email = ['lucastoc@gmail.com']
|
13
|
+
|
14
|
+
spec.summary = 'PushNotifications pusher product'
|
15
|
+
spec.description = 'A gem to use the Pusher BETA product Push Notifications'
|
16
|
+
spec.homepage = 'https://github.com/lucasmedeirosleite/push-notifications-ruby'
|
17
|
+
spec.license = 'MIT'
|
18
|
+
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
|
+
f.match(%r{^(test|spec|features)/})
|
21
|
+
end
|
22
|
+
spec.bindir = 'exe'
|
23
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
|
+
spec.require_paths = ['lib']
|
25
|
+
|
26
|
+
spec.add_dependency 'caze'
|
27
|
+
spec.add_dependency 'rest-client'
|
28
|
+
|
29
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
30
|
+
spec.add_development_dependency 'coveralls', '~> 0.8.21'
|
31
|
+
spec.add_development_dependency 'dotenv', '~> 2.2', '>= 2.2.1'
|
32
|
+
spec.add_development_dependency 'pry-byebug'
|
33
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
35
|
+
spec.add_development_dependency 'rubocop'
|
36
|
+
spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
|
37
|
+
spec.add_development_dependency 'webmock', '~> 3.0', '>= 3.0.1'
|
38
|
+
end
|
metadata
ADDED
@@ -0,0 +1,235 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pusher-push-notifications
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Lucas Medeiros
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-01-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: caze
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rest-client
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.16'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.16'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: coveralls
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.8.21
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.8.21
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: dotenv
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.2'
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 2.2.1
|
79
|
+
type: :development
|
80
|
+
prerelease: false
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - "~>"
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '2.2'
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 2.2.1
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: pry-byebug
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rake
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '10.0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '10.0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: rspec
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '3.0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '3.0'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rubocop
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: vcr
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '3.0'
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: 3.0.3
|
155
|
+
type: :development
|
156
|
+
prerelease: false
|
157
|
+
version_requirements: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - "~>"
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '3.0'
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: 3.0.3
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: webmock
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '3.0'
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: 3.0.1
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '3.0'
|
182
|
+
- - ">="
|
183
|
+
- !ruby/object:Gem::Version
|
184
|
+
version: 3.0.1
|
185
|
+
description: A gem to use the Pusher BETA product Push Notifications
|
186
|
+
email:
|
187
|
+
- lucastoc@gmail.com
|
188
|
+
executables: []
|
189
|
+
extensions: []
|
190
|
+
extra_rdoc_files: []
|
191
|
+
files:
|
192
|
+
- ".coveralls.yml"
|
193
|
+
- ".env.sample"
|
194
|
+
- ".gitignore"
|
195
|
+
- ".rspec"
|
196
|
+
- ".rubocop.yml"
|
197
|
+
- ".travis.yml"
|
198
|
+
- Gemfile
|
199
|
+
- Gemfile.lock
|
200
|
+
- LICENSE.txt
|
201
|
+
- README.md
|
202
|
+
- Rakefile
|
203
|
+
- bin/console
|
204
|
+
- bin/setup
|
205
|
+
- lib/pusher.rb
|
206
|
+
- lib/pusher/push_notifications.rb
|
207
|
+
- lib/pusher/push_notifications/client.rb
|
208
|
+
- lib/pusher/push_notifications/use_cases/notify.rb
|
209
|
+
- lib/pusher/push_notifications/version.rb
|
210
|
+
- pusher-push-notifications.gemspec
|
211
|
+
homepage: https://github.com/lucasmedeirosleite/push-notifications-ruby
|
212
|
+
licenses:
|
213
|
+
- MIT
|
214
|
+
metadata: {}
|
215
|
+
post_install_message:
|
216
|
+
rdoc_options: []
|
217
|
+
require_paths:
|
218
|
+
- lib
|
219
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: '0'
|
224
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - ">="
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '0'
|
229
|
+
requirements: []
|
230
|
+
rubyforge_project:
|
231
|
+
rubygems_version: 2.7.3
|
232
|
+
signing_key:
|
233
|
+
specification_version: 4
|
234
|
+
summary: PushNotifications pusher product
|
235
|
+
test_files: []
|