rack-push-notification 0.5.3 → 0.6.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: 05286ab87d68a0f660e6d6241bfffe08844243ac
4
- data.tar.gz: e8026c2ace0bcbeab7a80cf6a114c38633ff10b1
3
+ metadata.gz: e465875b3138965e524b1a2f0955e967b3648d49
4
+ data.tar.gz: 9586b593cad69143d3fee2308930e9394cb1be7d
5
5
  SHA512:
6
- metadata.gz: fb79e1cd9b958a3dcb8ab241247667e7bd046c231e2d65a6f053441cd00ce8b06a9df07b533dbad391326636eb9f38ad955a2bb61583473e48eaa12c4dd534b6
7
- data.tar.gz: 58fbef1c87adc86f71bec550fc75a4dbb726488859c2fac56c1044f507951f0fe8706c792ee0756516cb6b5782558a1b61b69a55f1af082640b22cf224b6af28
6
+ metadata.gz: 166942f0e5d44a0ebd405c10fe22f96ead905c46bcc8a9b03e8c79137027a2203eaaecd20a2d63e09b0e7255a523e4a37013882734d5cd6504e7d190ddc5aae7
7
+ data.tar.gz: 0f1a3267da641c984b4b44f8e0344f6d0744affff501f56e82dd0742ab15abbe147e75cc516583ea2a600f0c02fdc7e63805a9d00dec6a5b7d896d30e95b0f31
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-push-notification (0.5.3)
4
+ rack-push-notification (0.6.0)
5
5
  rack (~> 1.4)
6
6
  rack-contrib (~> 1.1)
7
7
  sequel (>= 3.0)
@@ -11,33 +11,34 @@ PATH
11
11
  GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
- diff-lcs (1.2.5)
15
- rack (1.5.2)
16
- rack-contrib (1.1.0)
17
- rack (>= 0.9.1)
18
- rack-protection (1.5.3)
14
+ diff-lcs (1.3)
15
+ rack (1.6.11)
16
+ rack-contrib (1.8.0)
17
+ rack (~> 1.4)
18
+ rack-protection (1.5.5)
19
19
  rack
20
- rake (10.4.2)
21
- rspec (3.0.0)
22
- rspec-core (~> 3.0.0)
23
- rspec-expectations (~> 3.0.0)
24
- rspec-mocks (~> 3.0.0)
25
- rspec-core (3.0.4)
26
- rspec-support (~> 3.0.0)
27
- rspec-expectations (3.0.4)
20
+ rake (12.3.2)
21
+ rspec (3.8.0)
22
+ rspec-core (~> 3.8.0)
23
+ rspec-expectations (~> 3.8.0)
24
+ rspec-mocks (~> 3.8.0)
25
+ rspec-core (3.8.2)
26
+ rspec-support (~> 3.8.0)
27
+ rspec-expectations (3.8.4)
28
28
  diff-lcs (>= 1.2.0, < 2.0)
29
- rspec-support (~> 3.0.0)
30
- rspec-mocks (3.0.4)
31
- rspec-support (~> 3.0.0)
32
- rspec-support (3.0.4)
33
- sequel (4.17.0)
34
- sinatra (1.4.5)
35
- rack (~> 1.4)
29
+ rspec-support (~> 3.8.0)
30
+ rspec-mocks (3.8.1)
31
+ diff-lcs (>= 1.2.0, < 2.0)
32
+ rspec-support (~> 3.8.0)
33
+ rspec-support (3.8.2)
34
+ sequel (5.22.0)
35
+ sinatra (1.4.8)
36
+ rack (~> 1.5)
36
37
  rack-protection (~> 1.4)
37
- tilt (~> 1.3, >= 1.3.4)
38
+ tilt (>= 1.3, < 3)
38
39
  sinatra-param (0.1.3)
39
40
  sinatra (~> 1.3)
40
- tilt (1.4.1)
41
+ tilt (2.0.9)
41
42
 
42
43
  PLATFORMS
43
44
  ruby
@@ -46,3 +47,6 @@ DEPENDENCIES
46
47
  rack-push-notification!
47
48
  rake
48
49
  rspec
50
+
51
+ BUNDLED WITH
52
+ 2.0.1
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Mattt Thompson (http://mattt.me/)
1
+ Copyright (c) 2012 – 2019 Mattt (https://mat.tt/)
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,33 +1,55 @@
1
- Rack::PushNotification
2
- ======================
3
- **A Rack-mountable webservice for managing push notifications**
4
-
5
- `Rack::PushNotification` generates API endpoints that can be consumed by iOS apps to register and unregister for push notifications.
6
-
7
- ## Example Record
8
-
9
- <table>
10
- <tr><td><tt>token</tt></td><td>"ce8be627 2e43e855 16033e24 b4c28922 0eeda487 9c477160 b2545e95 b68b5969"</td></tr>
11
- <tr><td><tt>alias</tt></td><td>mattt@heroku.com</td></tr>
12
- <tr><td><tt>badge</tt></td><td>0</td></tr>
13
- <tr><td><tt>locale</tt></td><td>en_US</td></tr>
14
- <tr><td><tt>language</tt></td><td>en</td></tr>
15
- <tr><td><tt>timezone</tt></td><td>America/Los_Angeles</td></tr>
16
- <tr><td><tt>ip_address</tt></td><td>0.0.0.0</td></tr>
17
- <tr><td><tt>lat</tt></td><td>37.7716</td></tr>
18
- <tr><td><tt>lng</tt></td><td>-122.4137</td></tr>
19
- <tr><td><tt>tags</tt></td><td><tt>["iPhone OS 6.0", "v1.0", "iPhone"]</tt></td></tr>
20
- </table>
1
+ # Rack::PushNotification
21
2
 
22
- Each device has a `token`, which uniquely identifies the app installation on a particular device. This token can be associated with an `alias`, which can be a domain-specific piece of identifying information, such as a username or e-mail address. A running `badge` count is used to keep track of the badge count to show on the app icon.
23
-
24
- A device's `locale` & `language` can be used to localize outgoing communications to that particular user. Having `timezone` information gives you the ability to schedule messages for an exact time of day, to ensure maximum impact (and minimum annoyance). `ip_address` as well as `lat` and `lng` allows you to specifically target users according to their geographic location.
25
-
26
- **It is strongly recommended that you use `Rack::PushNotification` in conjunction with some sort of Rack authentication middleware, so that the administration endpoints are not accessible without some form of credentials.**
3
+ **A Rack-mountable webservice for managing push notifications**
27
4
 
28
- ## Example Usage
5
+ `Rack::PushNotification` is Rack middleware that
6
+ generates API endpoints that can be consumed by iOS apps
7
+ to register and unregister for push notifications.
8
+
9
+ **Example Record**
10
+
11
+ | Field | Value |
12
+ | ------------ | --------------------------------------------------------------------------- |
13
+ | `token` | `"ce8be627 2e43e855 16033e24 b4c28922 0eeda487 9c477160 b2545e95 b68b5969"` |
14
+ | `alias` | `mattt@heroku.com` |
15
+ | `badge` | `0` |
16
+ | `locale` | `en_US` |
17
+ | `language` | `en` |
18
+ | `timezone` | `America/Los_Angeles` |
19
+ | `ip_address` | `0.0.0.0` |
20
+ | `lat` | `37.7716` |
21
+ | `lng` | `-122.4137` |
22
+ | `tags` | `["iPhone OS 6.0", "v1.0", "iPhone"]` |
23
+
24
+ - Each device has a `token`,
25
+ which uniquely identifies the app installation on a particular device.
26
+ - This token can be associated with an `alias`,
27
+ which can be a domain-specific piece of identifying information,
28
+ such as a username or e-mail address.
29
+ - A running `badge` count keeps track of the badge count to show on the app icon.
30
+ - A device's `locale` & `language` can be used to
31
+ localize outgoing communications to that particular user.
32
+ - Having `timezone` information gives you the ability to
33
+ schedule messages for an exact time of day and to
34
+ ensure maximum impact (and minimum annoyance).
35
+ - An `ip_address` --- along with `lat` and `lng` ---
36
+ lets you to specifically target users according to their geographic location.
37
+
38
+ > **Important**
39
+ > Use `Rack::PushNotification` in conjunction with some kind of authentication,
40
+ > so that the administration endpoints aren't publicly accessible.
41
+
42
+ ## Usage
43
+
44
+ Rack::PushNotification can be run as Rack middleware or as a single web application.
45
+ All that's required is a connection to a Postgres database.
46
+ Define this with the environment variable `DATABASE_URL`.
47
+
48
+ > For rails, use the
49
+ > [`rails-database-url`](https://github.com/glenngillen/rails-database-url) gem
50
+ > to define this from the `database.yml`.
29
51
 
30
- Rack::PushNotification can be run as Rack middleware or as a single web application. All that is required is a connection to a Postgres database. You must define this with the environment variable `DATABASE_URL`. For rails, use the [`rails-database-url`](https://github.com/glenngillen/rails-database-url) gem to define this from the `database.yml`.
52
+ An example application can be found in the `/example` directory of this repository.
31
53
 
32
54
  ### config.ru
33
55
 
@@ -38,28 +60,6 @@ Bundler.require
38
60
  run Rack::PushNotification
39
61
  ```
40
62
 
41
- An example application can be found in the `/example` directory of this repository.
42
-
43
- ## iOS Client Library
44
-
45
- To get the full benefit of `Rack::PushNotification`, use the [Orbiter](https://github.com/mattt/Orbiter) library to register for Push Notifications on iOS.
46
-
47
- ```objective-c
48
- #import "Orbiter.h"
49
-
50
- - (void)application:(UIApplication *)application
51
- didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
52
- {
53
- NSURL *serverURL = [NSURL URLWithString:@"http://raging-notification-3556.herokuapp.com/"]
54
- Orbiter *orbiter = [[Orbiter alloc] initWithBaseURL:serverURL credential:nil];
55
- [orbiter registerDeviceToken:deviceToken withAlias:nil success:^(id responseObject) {
56
- NSLog(@"Registration Success: %@", responseObject);
57
- } failure:^(NSError *error) {
58
- NSLog(@"Registration Error: %@", error);
59
- }];
60
- }
61
- ```
62
-
63
63
  ## Deployment
64
64
 
65
65
  `Rack::PushNotification` can be deployed to Heroku with the following commands:
@@ -71,12 +71,9 @@ $ git push heroku master
71
71
 
72
72
  ## Contact
73
73
 
74
- Mattt Thompson
75
-
76
- - http://github.com/mattt
77
- - http://twitter.com/mattt
78
- - m@mattt.me
74
+ [Mattt](https://twitter.com/mattt)
79
75
 
80
76
  ## License
81
77
 
82
- Rack::PushNotification is available under the MIT license. See the LICENSE file for more info.
78
+ Rack::PushNotification is available under the MIT license.
79
+ See the LICENSE file for more info.
data/Rakefile CHANGED
@@ -1,10 +1,12 @@
1
- require "bundler"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler'
2
4
  Bundler.setup
3
5
 
4
- gemspec = eval(File.read("rack-push-notification.gemspec"))
6
+ gemspec = eval(File.read('rack-push-notification.gemspec'))
5
7
 
6
- task :build => "#{gemspec.full_name}.gem"
8
+ task build: "#{gemspec.full_name}.gem"
7
9
 
8
- file "#{gemspec.full_name}.gem" => gemspec.files + ["rack-push-notification.gemspec"] do
9
- system "gem build rack-push-notification.gemspec"
10
+ file "#{gemspec.full_name}.gem" => gemspec.files + ['rack-push-notification.gemspec'] do
11
+ system 'gem build rack-push-notification.gemspec'
10
12
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rack'
2
4
  require 'rack/contrib'
3
5
 
@@ -35,27 +37,27 @@ module Rack
35
37
  param :tags, Array
36
38
 
37
39
  record = Device.find(token: params[:token]) || Device.new
38
- record.set(params.update({ip_address: request.ip}))
40
+ record.set(params.update(ip_address: request.ip))
39
41
 
40
42
  code = record.new? ? 201 : 200
41
43
 
42
44
  if record.save
43
45
  status code
44
- {device: record}.to_json
46
+ { device: record }.to_json
45
47
  else
46
48
  status 400
47
- {errors: record.errors}.to_json
49
+ { errors: record.errors }.to_json
48
50
  end
49
51
  end
50
52
 
51
53
  delete '/devices/:token/?' do
52
- record = Device.find(token: params[:token]) or halt 404
54
+ (record = Device.find(token: params[:token])) || halt(404)
53
55
 
54
56
  if record.destroy
55
57
  status 200
56
58
  else
57
59
  status 400
58
- {errors: record.errors}.to_json
60
+ { errors: record.errors }.to_json
59
61
  end
60
62
  end
61
63
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Sequel.migration do
2
4
  up do
3
5
  create_table :push_notification_devices do
@@ -5,7 +7,7 @@ Sequel.migration do
5
7
 
6
8
  column :token, :varchar, empty: false, unique: true
7
9
  column :alias, :varchar
8
- column :badge, :int4, null: false, default: 0
10
+ column :badge, :int4, null: false, default: 0
9
11
  column :locale, :varchar
10
12
  column :language, :varchar
11
13
  column :timezone, :varchar, empty: false, default: 'UTC'
@@ -16,7 +18,7 @@ Sequel.migration do
16
18
 
17
19
  index :token
18
20
  index :alias
19
- index [:lat, :lng]
21
+ index %i[lat lng]
20
22
  end
21
23
  end
22
24
 
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Sequel.migration do
2
4
  up do
3
5
  add_column :push_notification_devices, :tsv, 'TSVector'
4
- add_index :push_notification_devices, :tsv, type: "GIN"
6
+ add_index :push_notification_devices, :tsv, type: 'GIN'
5
7
  create_trigger :push_notification_devices, :tsv, :tsvector_update_trigger,
6
- args: [:tsv, :'pg_catalog.english', :token, :alias, :locale, :timezone],
7
- events: [:insert, :update],
8
- each_row: true
8
+ args: %i[tsv pg_catalog.english token alias locale timezone],
9
+ events: %i[insert update],
10
+ each_row: true
9
11
  end
10
12
 
11
13
  down do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Rack
2
4
  class PushNotification::Device < Sequel::Model
3
5
  plugin :json_serializer, naked: true, except: :id
@@ -24,7 +26,7 @@ module Rack
24
26
  private
25
27
 
26
28
  def normalize_token!
27
- self.token = self.token.strip.gsub(/[<\s>]/, '')
29
+ self.token = token.strip.gsub(/[<\s>]/, '')
28
30
  end
29
31
  end
30
32
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rack
4
+ class PushNotification
5
+ VERSION = '0.6.0'
6
+ end
7
+ end
@@ -1,27 +1,30 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('lib', __dir__)
4
+ require 'rack/push-notification/version'
3
5
 
4
6
  Gem::Specification.new do |s|
5
- s.name = "rack-push-notification"
6
- s.authors = ["Mattt Thompson"]
7
- s.email = "m@mattt.me"
8
- s.homepage = "http://mattt.me"
9
- s.version = "0.5.3"
7
+ s.name = 'rack-push-notification'
8
+ s.authors = ['Mattt']
9
+ s.email = 'mattt@me.com'
10
+ s.homepage = 'https://mat.tt'
11
+ s.version = Rack::PushNotification::VERSION
12
+ s.licenses = 'MIT'
10
13
  s.platform = Gem::Platform::RUBY
11
- s.summary = "Rack::PushNotification"
12
- s.description = "Generate a REST API for registering and querying push notification device tokens."
14
+ s.summary = 'Rack::PushNotification'
15
+ s.description = 'Generate a REST API for registering and querying push notification device tokens.'
13
16
 
14
- s.add_dependency "rack", "~> 1.4"
15
- s.add_dependency "rack-contrib", "~> 1.1"
16
- s.add_dependency "sequel", ">= 3.0"
17
- s.add_dependency "sinatra", "~> 1.3"
18
- s.add_dependency "sinatra-param", "~> 0.1"
17
+ s.add_dependency 'rack', '~> 1.4'
18
+ s.add_dependency 'rack-contrib', '~> 1.1'
19
+ s.add_dependency 'sequel', '>= 3.0'
20
+ s.add_dependency 'sinatra', '~> 1.3'
21
+ s.add_dependency 'sinatra-param', '~> 0.1'
19
22
 
20
- s.add_development_dependency "rspec"
21
- s.add_development_dependency "rake"
23
+ s.add_development_dependency 'rake'
24
+ s.add_development_dependency 'rspec'
22
25
 
23
- s.files = Dir["./**/*"].reject { |file| file =~ /\.\/(bin|example|log|pkg|script|spec|test|vendor)/ }
26
+ s.files = Dir['./**/*'].reject { |file| file =~ %r{\./(bin|example|log|pkg|script|spec|test|vendor)} }
24
27
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
- s.require_paths = ["lib"]
28
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
29
+ s.require_paths = ['lib']
27
30
  end
metadata CHANGED
@@ -1,135 +1,134 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-push-notification
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.3
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
- - Mattt Thompson
7
+ - Mattt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-20 00:00:00.000000000 Z
11
+ date: 2019-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.4'
20
20
  type: :runtime
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: '1.4'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rack-contrib
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.1'
34
34
  type: :runtime
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: '1.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sequel
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sinatra
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.3'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sinatra-param
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.1'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.1'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Generate a REST API for registering and querying push notification device
112
112
  tokens.
113
- email: m@mattt.me
113
+ email: mattt@me.com
114
114
  executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ./Gemfile
119
- - ./Gemfile.lock
120
- - ./lib/rack/push-notification/migrations/001_base_schema.rb
121
- - ./lib/rack/push-notification/migrations/002_add_full_text_search.rb
122
- - ./lib/rack/push-notification/models/device.rb
123
- - ./lib/rack/push-notification.rb
124
- - ./LICENSE
125
- - ./rack-push-notification-0.5.0.gem
126
- - ./rack-push-notification-0.5.1.gem
127
- - ./rack-push-notification-0.5.2.gem
128
- - ./rack-push-notification.gemspec
129
- - ./Rakefile
130
- - ./README.md
131
- homepage: http://mattt.me
132
- licenses: []
118
+ - "./Gemfile"
119
+ - "./Gemfile.lock"
120
+ - "./LICENSE.md"
121
+ - "./README.md"
122
+ - "./Rakefile"
123
+ - "./lib/rack/push-notification.rb"
124
+ - "./lib/rack/push-notification/migrations/001_base_schema.rb"
125
+ - "./lib/rack/push-notification/migrations/002_add_full_text_search.rb"
126
+ - "./lib/rack/push-notification/models/device.rb"
127
+ - "./lib/rack/push-notification/version.rb"
128
+ - "./rack-push-notification.gemspec"
129
+ homepage: https://mat.tt
130
+ licenses:
131
+ - MIT
133
132
  metadata: {}
134
133
  post_install_message:
135
134
  rdoc_options: []
@@ -137,17 +136,17 @@ require_paths:
137
136
  - lib
138
137
  required_ruby_version: !ruby/object:Gem::Requirement
139
138
  requirements:
140
- - - '>='
139
+ - - ">="
141
140
  - !ruby/object:Gem::Version
142
141
  version: '0'
143
142
  required_rubygems_version: !ruby/object:Gem::Requirement
144
143
  requirements:
145
- - - '>='
144
+ - - ">="
146
145
  - !ruby/object:Gem::Version
147
146
  version: '0'
148
147
  requirements: []
149
148
  rubyforge_project:
150
- rubygems_version: 2.1.11
149
+ rubygems_version: 2.6.14
151
150
  signing_key:
152
151
  specification_version: 4
153
152
  summary: Rack::PushNotification
Binary file
Binary file
Binary file