auto-session-timeout 0.9.2 → 0.9.7
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 +6 -14
- data/.travis.yml +41 -0
- data/CHANGELOG +54 -2
- data/Gemfile +3 -0
- data/README.md +82 -48
- data/auto-session-timeout.gemspec +5 -5
- data/lib/auto/session/timeout/version.rb +1 -1
- data/lib/auto_session_timeout.rb +24 -8
- data/lib/auto_session_timeout_helper.rb +17 -11
- data/test/auto_session_timeout_helper_test.rb +21 -18
- metadata +44 -32
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MmFiZGY1NjI4M2M2ZTUzNTZlNmM3OTY5ZjBjM2QyNjA2ZDZkZjE0ODIyYzg1
|
10
|
-
MDhhZjQ1MmE4Y2RmMTYxNzQwMDMxZWI1NzhjYmYzMmZiNTYyZjI0M2NiNWFi
|
11
|
-
MDdjZmUzMTlmOTliODc3OTAxNTExOTdjYTExOTY0ODk2ZTcyYTU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZGZkMjVmNjA5ZjU0YjYxMmJhMjZhYTI3ZTU4YjZlYzRhZjQ5YTNlODkzNmY4
|
14
|
-
NjQyZmM4YzI5Mjk3MmIxOGMxYWU1NmI1NDc3OWFiZjJmZWMwNGI4ZjA4NDI0
|
15
|
-
NDZlNGJjZDQ5NmFjNThmM2RkZDg5ZmU5NzBkOGVmZGRhNmMyYzg=
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fc498b02e7b05cbf09f3af63eb7f83617970fa76287e7beb522e2b676df6c6a0
|
4
|
+
data.tar.gz: fad257ffc2872343879ab12346d6d029c5df75e3ec7eb0913e61f441afa5250b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 58db2799f2c39e9f4107bbdd21b95a563786e5e1bed28670ff0f0d04d86596c0690846a8d07c71b92804d584a40704295539b06115e52eb538a4f5693f20152a
|
7
|
+
data.tar.gz: 0ba4a07545611dd012b465e9f21eb6768de9dd588ef4c9bb2c1815bc3253bab062c360443b088c5083cfc524b0e563193edaa86307ba00f8078f4d9064eaabb6
|
data/.travis.yml
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
cache: bundler
|
4
|
+
before_install:
|
5
|
+
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
|
6
|
+
- gem install bundler -v '< 2'
|
7
|
+
rvm:
|
8
|
+
- 2.4.9
|
9
|
+
- 2.5.7
|
10
|
+
- 2.6.5
|
11
|
+
- 2.7.0
|
12
|
+
- ruby-head
|
13
|
+
env:
|
14
|
+
- RAILS_VERSION='~> 3.2'
|
15
|
+
- RAILS_VERSION='~> 4.0'
|
16
|
+
- RAILS_VERSION='~> 4.1'
|
17
|
+
- RAILS_VERSION='~> 4.2'
|
18
|
+
- RAILS_VERSION='~> 5.0'
|
19
|
+
- RAILS_VERSION='~> 5.1'
|
20
|
+
- RAILS_VERSION='~> 5.2'
|
21
|
+
jobs:
|
22
|
+
exclude:
|
23
|
+
- rvm: 2.7.0
|
24
|
+
env: RAILS_VERSION='~> 3.2'
|
25
|
+
- rvm: 2.7.0
|
26
|
+
env: RAILS_VERSION='~> 4.0'
|
27
|
+
- rvm: 2.7.0
|
28
|
+
env: RAILS_VERSION='~> 4.1'
|
29
|
+
- rvm: 2.7.0
|
30
|
+
env: RAILS_VERSION='~> 4.2'
|
31
|
+
- rvm: ruby-head
|
32
|
+
env: RAILS_VERSION='~> 3.2'
|
33
|
+
- rvm: ruby-head
|
34
|
+
env: RAILS_VERSION='~> 4.0'
|
35
|
+
- rvm: ruby-head
|
36
|
+
env: RAILS_VERSION='~> 4.1'
|
37
|
+
- rvm: ruby-head
|
38
|
+
env: RAILS_VERSION='~> 4.2'
|
39
|
+
allow_failures:
|
40
|
+
- rvm: ruby-head
|
41
|
+
fast_finish: true
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,55 @@
|
|
1
|
-
|
1
|
+
2021-02-02 - v0.9.7
|
2
2
|
|
3
|
-
|
3
|
+
2021-02-02 - Rails 6 compatibility [jasonheecs]
|
4
|
+
|
5
|
+
2019-10-15 - v0.9.6
|
6
|
+
|
7
|
+
2019-10-15 - Use routes in JS helper [pelargir]
|
8
|
+
|
9
|
+
2019-03-03 - Update README [cprodhomme]
|
10
|
+
|
11
|
+
2018-12-21 - Support Rails protect_from_forgery [davegudge]
|
12
|
+
|
13
|
+
2017-06-13 - v0.9.5
|
14
|
+
|
15
|
+
2017-06-12 - Exclude controller actions from CSRF verification [pelargir]
|
16
|
+
|
17
|
+
2017-06-12 - Make updater use vanilla JS [emilos]
|
18
|
+
|
19
|
+
2017-05-16 - v0.9.4
|
20
|
+
|
21
|
+
2017-05-08 - Rails 5 compatibility [quainjn]
|
22
|
+
|
23
|
+
2016-10-14 - Allow defining verbosity [zaimramlan]
|
24
|
+
|
25
|
+
2013-08-29 - v0.9.3
|
26
|
+
|
27
|
+
2013-08-28 - Add jQuery support [krishnasrihari]
|
28
|
+
|
29
|
+
2013-07-24 - v0.9.2
|
30
|
+
|
31
|
+
2013-07-24 - Add tests and use Ruby 1.9 hash syntax [pelargir]
|
32
|
+
|
33
|
+
2013-07-24 - v0.9.1
|
34
|
+
|
35
|
+
2013-07-24 - Timeout can be set in controller or user model [pelargir]
|
36
|
+
|
37
|
+
2013-07-22 - v0.9
|
38
|
+
|
39
|
+
2013-07-21 - Support for jQuery periodical updater plugin [pelargir]
|
40
|
+
|
41
|
+
2013-07-17 - v0.8
|
42
|
+
|
43
|
+
2014-07-14 - Added jQuery support [krishnasrihari]
|
44
|
+
|
45
|
+
2013-06-23 - v0.7
|
46
|
+
|
47
|
+
2013-06-22 - Switched to Bundler for generating the gemspec [pelargir]
|
48
|
+
|
49
|
+
2009-08-22 - v0.5
|
50
|
+
|
51
|
+
2009-06-03 - Move controller actions into plugin [pelargir]
|
52
|
+
|
53
|
+
2009-04-22 - Add JS helper [pelargir]
|
54
|
+
|
55
|
+
2009-04-22 - Initial import [pelargir]
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,16 +1,20 @@
|
|
1
|
-
|
1
|
+
[](https://travis-ci.com/pelargir/auto-session-timeout)
|
2
|
+
|
3
|
+
# Auto::Session::Timeout
|
2
4
|
|
3
5
|
Provides automatic session timeout in a Rails application. Very easy
|
4
6
|
to install and configure. Have you ever wanted to force your users
|
5
7
|
off your app if they go idle for a certain period of time? Many
|
6
8
|
online banking sites use this technique. If your app is used on any
|
7
|
-
kind of public computer system, this
|
9
|
+
kind of public computer system, this gem is a necessity.
|
8
10
|
|
9
11
|
## Installation
|
10
12
|
|
11
13
|
Add this line to your application's Gemfile:
|
12
14
|
|
13
|
-
|
15
|
+
```ruby
|
16
|
+
gem 'auto-session-timeout'
|
17
|
+
```
|
14
18
|
|
15
19
|
And then execute:
|
16
20
|
|
@@ -24,52 +28,80 @@ Or install it yourself as:
|
|
24
28
|
|
25
29
|
After installing, tell your application controller to use auto timeout:
|
26
30
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
31
|
+
```ruby
|
32
|
+
class ApplicationController < ActionController::Base
|
33
|
+
auto_session_timeout 1.hour
|
34
|
+
...
|
35
|
+
end
|
36
|
+
```
|
37
|
+
|
38
|
+
This will use a global timeout of 1 hour. If you want to specify a
|
39
|
+
custom timeout value per user, don't pass a value above. Instead,
|
40
|
+
override `#auto_timeout` in your `#current_user` model. This is
|
41
|
+
typically the `User` class:
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
class ApplicationController < ActionController::Base
|
45
|
+
auto_session_timeout
|
46
|
+
end
|
47
|
+
|
48
|
+
class User < ActiveRecord::Base
|
49
|
+
def auto_timeout
|
50
|
+
15.minutes
|
51
|
+
end
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
55
|
+
You will also need to insert a call to the `#auto_session_timeout_js`
|
56
|
+
helper method inside the body tags in your views. The easiest way to
|
57
|
+
do this is to insert it once inside your default or application-wide
|
58
|
+
layout. Make sure you are only rendering if the user is logged in,
|
59
|
+
otherwise the gem will attempt to force non-existent sessions to
|
60
|
+
timeout, wreaking havoc:
|
61
|
+
|
62
|
+
```erb
|
63
|
+
<body>
|
64
|
+
<% if current_user %>
|
65
|
+
<%= auto_session_timeout_js %>
|
66
|
+
<% end %>
|
67
|
+
</body>
|
68
|
+
```
|
43
69
|
|
44
70
|
You need to setup two actions: one to return the session status and
|
45
71
|
another that runs when the session times out. You can use the default
|
46
|
-
actions included with the
|
72
|
+
actions included with the gem by inserting this line in your target
|
47
73
|
controller (most likely your user or session controller):
|
48
74
|
|
49
|
-
|
50
|
-
|
51
|
-
|
75
|
+
```ruby
|
76
|
+
class SessionsController < ApplicationController
|
77
|
+
auto_session_timeout_actions
|
78
|
+
end
|
79
|
+
```
|
52
80
|
|
53
81
|
To customize the default actions, simply override them. You can call
|
54
|
-
the render_session_status and render_session_timeout methods to
|
55
|
-
the default implementation from the
|
82
|
+
the `#render_session_status` and `#render_session_timeout` methods to
|
83
|
+
use the default implementation from the gem, or you can define the
|
56
84
|
actions entirely with your own custom code:
|
57
85
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
86
|
+
```ruby
|
87
|
+
class SessionsController < ApplicationController
|
88
|
+
def active
|
89
|
+
render_session_status
|
90
|
+
end
|
91
|
+
|
92
|
+
def timeout
|
93
|
+
render_session_timeout
|
94
|
+
end
|
95
|
+
end
|
96
|
+
```
|
67
97
|
|
68
|
-
In any of these cases, make sure to properly map the actions in
|
69
|
-
|
98
|
+
In any of these cases, make sure to properly map the actions in your
|
99
|
+
routes.rb file:
|
70
100
|
|
71
|
-
|
72
|
-
|
101
|
+
```ruby
|
102
|
+
get 'active' => 'sessions#active'
|
103
|
+
get 'timeout' => 'sessions#timeout'
|
104
|
+
```
|
73
105
|
|
74
106
|
You're done! Enjoy watching your sessions automatically timeout.
|
75
107
|
|
@@ -80,21 +112,23 @@ active sessions. If you prefer that it check more frequently, pass a
|
|
80
112
|
frequency attribute to the helper method. The frequency is given in
|
81
113
|
seconds. The following example checks the server every 15 seconds:
|
82
114
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
115
|
+
```erb
|
116
|
+
<html>
|
117
|
+
<head>...</head>
|
118
|
+
<body>
|
119
|
+
<% if current_user %>
|
120
|
+
<%= auto_session_timeout_js frequency: 15 %>
|
121
|
+
<% end %>
|
122
|
+
...
|
123
|
+
</body>
|
124
|
+
</html>
|
125
|
+
```
|
92
126
|
|
93
127
|
## TODO
|
94
128
|
|
95
129
|
* current_user must be defined
|
96
130
|
* using Prototype vs. jQuery
|
97
|
-
*
|
131
|
+
* using with Devise
|
98
132
|
|
99
133
|
## Contributing
|
100
134
|
|
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Auto::Session::Timeout::VERSION
|
9
9
|
spec.authors = ["Matthew Bass"]
|
10
10
|
spec.email = ["pelargir@gmail.com"]
|
11
|
-
spec.description = %q{
|
11
|
+
spec.description = %q{Automatic session timeout in Rails}
|
12
12
|
spec.summary = %q{Provides automatic session timeout in a Rails application.}
|
13
13
|
spec.homepage = "http://github.com/pelargir/auto-session-timeout"
|
14
14
|
spec.license = "MIT"
|
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.add_development_dependency "
|
23
|
-
spec.add_development_dependency "
|
24
|
-
spec.add_development_dependency "
|
21
|
+
spec.add_dependency "actionpack", [">= 3.2", "< 7"]
|
22
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
23
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
24
|
+
spec.add_development_dependency "minitest", [">= 4.2", "< 6"]
|
25
25
|
end
|
data/lib/auto_session_timeout.rb
CHANGED
@@ -2,16 +2,16 @@ module AutoSessionTimeout
|
|
2
2
|
|
3
3
|
def self.included(controller)
|
4
4
|
controller.extend ClassMethods
|
5
|
-
controller.hide_action :render_auto_session_timeout
|
6
5
|
end
|
7
6
|
|
8
7
|
module ClassMethods
|
9
8
|
def auto_session_timeout(seconds=nil)
|
10
|
-
|
11
|
-
|
9
|
+
protect_from_forgery except: [:active, :timeout]
|
10
|
+
prepend_before_action do |c|
|
11
|
+
if session_expired?(c) && !signing_in?(c)
|
12
12
|
c.send :reset_session
|
13
13
|
else
|
14
|
-
unless c.
|
14
|
+
unless c.request.original_url.start_with?(c.send(:active_url))
|
15
15
|
offset = seconds || (current_user.respond_to?(:auto_timeout) ? current_user.auto_timeout : nil)
|
16
16
|
c.session[:auto_session_expires_at] = Time.now + offset if offset && offset > 0
|
17
17
|
end
|
@@ -27,14 +27,30 @@ module AutoSessionTimeout
|
|
27
27
|
|
28
28
|
def render_session_status
|
29
29
|
response.headers["Etag"] = "" # clear etags to prevent caching
|
30
|
-
render
|
30
|
+
render plain: !!current_user, status: 200
|
31
31
|
end
|
32
32
|
|
33
33
|
def render_session_timeout
|
34
|
-
flash[:notice] = "Your session has timed out."
|
35
|
-
redirect_to
|
34
|
+
flash[:notice] = t("devise.failure.timeout", default: "Your session has timed out.")
|
35
|
+
redirect_to sign_in_path
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def signing_in?(c)
|
41
|
+
c.request.env["PATH_INFO"] == sign_in_path && c.request.env["REQUEST_METHOD"] == "POST"
|
42
|
+
end
|
43
|
+
|
44
|
+
def session_expired?(c)
|
45
|
+
c.session[:auto_session_expires_at].try(:<, Time.now)
|
46
|
+
end
|
47
|
+
|
48
|
+
def sign_in_path
|
49
|
+
user_session_path
|
50
|
+
rescue
|
51
|
+
"/login"
|
36
52
|
end
|
37
53
|
|
38
54
|
end
|
39
55
|
|
40
|
-
ActionController::Base.send :include, AutoSessionTimeout
|
56
|
+
ActionController::Base.send :include, AutoSessionTimeout
|
@@ -1,20 +1,26 @@
|
|
1
1
|
module AutoSessionTimeoutHelper
|
2
2
|
def auto_session_timeout_js(options={})
|
3
3
|
frequency = options[:frequency] || 60
|
4
|
+
attributes = options[:attributes] || {}
|
4
5
|
code = <<JS
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
}
|
6
|
+
function PeriodicalQuery() {
|
7
|
+
var request = new XMLHttpRequest();
|
8
|
+
request.onload = function (event) {
|
9
|
+
var status = event.target.status;
|
10
|
+
var response = event.target.response;
|
11
|
+
if (status === 200 && (response === false || response === 'false' || response === null)) {
|
12
|
+
window.location.href = '#{timeout_path}';
|
13
|
+
}
|
14
|
+
};
|
15
|
+
request.open('GET', '#{active_path}', true);
|
16
|
+
request.responseType = 'json';
|
17
|
+
request.send();
|
18
|
+
setTimeout(PeriodicalQuery, (#{frequency} * 1000));
|
14
19
|
}
|
20
|
+
setTimeout(PeriodicalQuery, (#{frequency} * 1000));
|
15
21
|
JS
|
16
|
-
javascript_tag(code)
|
22
|
+
javascript_tag(code, attributes)
|
17
23
|
end
|
18
24
|
end
|
19
25
|
|
20
|
-
ActionView::Base.send :include, AutoSessionTimeoutHelper
|
26
|
+
ActionView::Base.send :include, AutoSessionTimeoutHelper
|
@@ -2,33 +2,36 @@ require File.dirname(__FILE__) + '/test_helper'
|
|
2
2
|
|
3
3
|
describe AutoSessionTimeoutHelper do
|
4
4
|
|
5
|
-
|
5
|
+
class ActionView::Base
|
6
|
+
def timeout_path
|
7
|
+
'/timeout'
|
8
|
+
end
|
9
|
+
|
10
|
+
def active_path
|
11
|
+
'/active'
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
subject { ActionView::Base.new }
|
6
16
|
|
7
17
|
describe "#auto_session_timeout_js" do
|
8
18
|
it "returns correct JS" do
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
if (e.responseText == 'false') window.location.href = '/timeout';
|
14
|
-
}});
|
15
|
-
} else {
|
16
|
-
$.PeriodicalUpdater('/active', {minTimeout:60000, multiplier:0, method:'get', verbose:2}, function(remoteData, success) {
|
17
|
-
if (success == 'success' && remoteData == 'false')
|
18
|
-
window.location.href = '/timeout';
|
19
|
-
});
|
20
|
-
}
|
21
|
-
|
22
|
-
//]]>
|
23
|
-
</script>", subject.auto_session_timeout_js
|
19
|
+
js = subject.auto_session_timeout_js
|
20
|
+
assert js.include?("window.location.href = '/timeout'")
|
21
|
+
assert js.include?("request.open('GET', '/active', true)")
|
22
|
+
assert js.include?("setTimeout(PeriodicalQuery, (60 * 1000))")
|
24
23
|
end
|
25
24
|
|
26
25
|
it "uses custom frequency when given" do
|
27
|
-
assert_match
|
26
|
+
assert_match %r{120}, subject.auto_session_timeout_js(frequency: 120)
|
28
27
|
end
|
29
28
|
|
30
29
|
it "uses 60 when custom frequency is nil" do
|
31
|
-
assert_match
|
30
|
+
assert_match %r{60}, subject.auto_session_timeout_js(frequency: nil)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "accepts attributes" do
|
34
|
+
assert_match %r{data-turbolinks-eval="false"}, subject.auto_session_timeout_js(attributes: { 'data-turbolinks-eval': 'false' })
|
32
35
|
end
|
33
36
|
end
|
34
37
|
|
metadata
CHANGED
@@ -1,79 +1,92 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auto-session-timeout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Bass
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: actionpack
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
|
19
|
+
version: '3.2'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '7'
|
23
|
+
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
29
|
+
version: '3.2'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '7'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
34
|
+
name: bundler
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- -
|
37
|
+
- - "~>"
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
39
|
+
version: '2.0'
|
34
40
|
type: :development
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
|
-
- -
|
44
|
+
- - "~>"
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
46
|
+
version: '2.0'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
48
|
+
name: rake
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - ~>
|
51
|
+
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
53
|
+
version: '13.0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- - ~>
|
58
|
+
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
60
|
+
version: '13.0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
62
|
+
name: minitest
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- -
|
65
|
+
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
67
|
+
version: '4.2'
|
68
|
+
- - "<"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '6'
|
62
71
|
type: :development
|
63
72
|
prerelease: false
|
64
73
|
version_requirements: !ruby/object:Gem::Requirement
|
65
74
|
requirements:
|
66
|
-
- -
|
75
|
+
- - ">="
|
67
76
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
69
|
-
|
77
|
+
version: '4.2'
|
78
|
+
- - "<"
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '6'
|
81
|
+
description: Automatic session timeout in Rails
|
70
82
|
email:
|
71
83
|
- pelargir@gmail.com
|
72
84
|
executables: []
|
73
85
|
extensions: []
|
74
86
|
extra_rdoc_files: []
|
75
87
|
files:
|
76
|
-
- .gitignore
|
88
|
+
- ".gitignore"
|
89
|
+
- ".travis.yml"
|
77
90
|
- CHANGELOG
|
78
91
|
- Gemfile
|
79
92
|
- LICENSE.txt
|
@@ -92,24 +105,23 @@ homepage: http://github.com/pelargir/auto-session-timeout
|
|
92
105
|
licenses:
|
93
106
|
- MIT
|
94
107
|
metadata: {}
|
95
|
-
post_install_message:
|
108
|
+
post_install_message:
|
96
109
|
rdoc_options: []
|
97
110
|
require_paths:
|
98
111
|
- lib
|
99
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
100
113
|
requirements:
|
101
|
-
- -
|
114
|
+
- - ">="
|
102
115
|
- !ruby/object:Gem::Version
|
103
116
|
version: '0'
|
104
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
118
|
requirements:
|
106
|
-
- -
|
119
|
+
- - ">="
|
107
120
|
- !ruby/object:Gem::Version
|
108
121
|
version: '0'
|
109
122
|
requirements: []
|
110
|
-
|
111
|
-
|
112
|
-
signing_key:
|
123
|
+
rubygems_version: 3.1.4
|
124
|
+
signing_key:
|
113
125
|
specification_version: 4
|
114
126
|
summary: Provides automatic session timeout in a Rails application.
|
115
127
|
test_files:
|