auto-session-timeout 0.9.4 → 0.9.8
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 +5 -5
- data/.gitignore +1 -0
- data/.travis.yml +46 -0
- data/CHANGELOG +55 -1
- data/Gemfile +3 -0
- data/README.md +122 -56
- data/auto-session-timeout.gemspec +5 -5
- data/lib/auto/session/timeout/version.rb +1 -1
- data/lib/auto_session_timeout.rb +25 -4
- data/lib/auto_session_timeout_helper.rb +16 -24
- data/test/auto_session_timeout_helper_test.rb +25 -31
- metadata +37 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 71d3e9f467963b89be2bdfb4e87ce915ed693536fd0760cf954d6116c8987c3a
|
4
|
+
data.tar.gz: f3b2cfee583099d5bb29400db0e4e187f8fdfd1750cc12cfc45380316719df50
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20685219ebb5e6750e215d8a873ad60b7de0a3e05f36c9bfb03249266b4886b240ea6b009242a718dc7d91b723053d3c5c3a2ae4f768b6ab016cefe915d7ed73
|
7
|
+
data.tar.gz: d94594ce6b6d7464ad543fcad88e8343e53b1d3a1f6af02f0d6d24a2877167b6cd776a4e62f575cc023ee752a30be4b7ed518b0283ed6eb144b42a5345d2705c
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
cache: bundler
|
4
|
+
before_install:
|
5
|
+
- gem install bundler -v '~> 2'
|
6
|
+
rvm:
|
7
|
+
- 2.4.10
|
8
|
+
- 2.5.8
|
9
|
+
- 2.6.6
|
10
|
+
- 2.7.2
|
11
|
+
- ruby-head
|
12
|
+
env:
|
13
|
+
- RAILS_VERSION='~> 3.2'
|
14
|
+
- RAILS_VERSION='~> 4.0'
|
15
|
+
- RAILS_VERSION='~> 4.1'
|
16
|
+
- RAILS_VERSION='~> 4.2'
|
17
|
+
- RAILS_VERSION='~> 5.0'
|
18
|
+
- RAILS_VERSION='~> 5.1'
|
19
|
+
- RAILS_VERSION='~> 5.2'
|
20
|
+
- RAILS_VERSION='~> 6.0'
|
21
|
+
- RAILS_VERSION='~> 6.1'
|
22
|
+
jobs:
|
23
|
+
exclude:
|
24
|
+
- rvm: 2.4.10
|
25
|
+
env: RAILS_VERSION='~> 6.0'
|
26
|
+
- rvm: 2.4.10
|
27
|
+
env: RAILS_VERSION='~> 6.1'
|
28
|
+
- rvm: 2.7.2
|
29
|
+
env: RAILS_VERSION='~> 3.2'
|
30
|
+
- rvm: 2.7.2
|
31
|
+
env: RAILS_VERSION='~> 4.0'
|
32
|
+
- rvm: 2.7.2
|
33
|
+
env: RAILS_VERSION='~> 4.1'
|
34
|
+
- rvm: 2.7.2
|
35
|
+
env: RAILS_VERSION='~> 4.2'
|
36
|
+
- rvm: ruby-head
|
37
|
+
env: RAILS_VERSION='~> 3.2'
|
38
|
+
- rvm: ruby-head
|
39
|
+
env: RAILS_VERSION='~> 4.0'
|
40
|
+
- rvm: ruby-head
|
41
|
+
env: RAILS_VERSION='~> 4.1'
|
42
|
+
- rvm: ruby-head
|
43
|
+
env: RAILS_VERSION='~> 4.2'
|
44
|
+
allow_failures:
|
45
|
+
- rvm: ruby-head
|
46
|
+
fast_finish: true
|
data/CHANGELOG
CHANGED
@@ -1,5 +1,59 @@
|
|
1
|
+
2021-10-11 - v0.9.8
|
2
|
+
|
3
|
+
2021-10-10 - Custom session timeout method [JunaidUK]
|
4
|
+
|
5
|
+
2021-02-02 - v0.9.7
|
6
|
+
|
7
|
+
2021-02-02 - Rails 6 compatibility [jasonheecs]
|
8
|
+
|
9
|
+
2019-10-15 - v0.9.6
|
10
|
+
|
11
|
+
2019-10-15 - Use routes in JS helper [pelargir]
|
12
|
+
|
13
|
+
2019-03-03 - Update README [cprodhomme]
|
14
|
+
|
15
|
+
2018-12-21 - Support Rails protect_from_forgery [davegudge]
|
16
|
+
|
17
|
+
2017-06-13 - v0.9.5
|
18
|
+
|
19
|
+
2017-06-12 - Exclude controller actions from CSRF verification [pelargir]
|
20
|
+
|
21
|
+
2017-06-12 - Make updater use vanilla JS [emilos]
|
22
|
+
|
23
|
+
2017-05-16 - v0.9.4
|
24
|
+
|
25
|
+
2017-05-08 - Rails 5 compatibility [quainjn]
|
26
|
+
|
27
|
+
2016-10-14 - Allow defining verbosity [zaimramlan]
|
28
|
+
|
29
|
+
2013-08-29 - v0.9.3
|
30
|
+
|
31
|
+
2013-08-28 - Add jQuery support [krishnasrihari]
|
32
|
+
|
33
|
+
2013-07-24 - v0.9.2
|
34
|
+
|
35
|
+
2013-07-24 - Add tests and use Ruby 1.9 hash syntax [pelargir]
|
36
|
+
|
37
|
+
2013-07-24 - v0.9.1
|
38
|
+
|
39
|
+
2013-07-24 - Timeout can be set in controller or user model [pelargir]
|
40
|
+
|
41
|
+
2013-07-22 - v0.9
|
42
|
+
|
43
|
+
2013-07-21 - Support for jQuery periodical updater plugin [pelargir]
|
44
|
+
|
45
|
+
2013-07-17 - v0.8
|
46
|
+
|
1
47
|
2014-07-14 - Added jQuery support [krishnasrihari]
|
2
48
|
|
49
|
+
2013-06-23 - v0.7
|
50
|
+
|
3
51
|
2013-06-22 - Switched to Bundler for generating the gemspec [pelargir]
|
4
52
|
|
5
|
-
2009-
|
53
|
+
2009-08-22 - v0.5
|
54
|
+
|
55
|
+
2009-06-03 - Move controller actions into plugin [pelargir]
|
56
|
+
|
57
|
+
2009-04-22 - Add JS helper [pelargir]
|
58
|
+
|
59
|
+
2009-04-22 - Initial import [pelargir]
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,100 +1,166 @@
|
|
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
|
|
17
|
-
|
21
|
+
```
|
22
|
+
$ bundle
|
23
|
+
```
|
18
24
|
|
19
25
|
Or install it yourself as:
|
20
26
|
|
21
|
-
|
27
|
+
```
|
28
|
+
$ gem install auto-session-timeout
|
29
|
+
```
|
22
30
|
|
23
31
|
## Usage
|
24
32
|
|
25
33
|
After installing, tell your application controller to use auto timeout:
|
26
34
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
35
|
+
```ruby
|
36
|
+
class ApplicationController < ActionController::Base
|
37
|
+
auto_session_timeout 1.hour
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
This will use a global timeout of 1 hour. The gem assumes your authentication
|
42
|
+
provider has a `#current_user` method that returns the currently logged in user.
|
43
|
+
|
44
|
+
If you want to specify a custom timeout value per user, don't pass a value to
|
45
|
+
the controller as shown above. Instead, override `#auto_timeout` in your
|
46
|
+
`#current_user` model. This is typically the `User` class:
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
class ApplicationController < ActionController::Base
|
50
|
+
auto_session_timeout
|
51
|
+
end
|
52
|
+
|
53
|
+
class User < ActiveRecord::Base
|
54
|
+
def auto_timeout
|
55
|
+
15.minutes
|
56
|
+
end
|
57
|
+
end
|
58
|
+
```
|
59
|
+
|
60
|
+
You will also need to insert a call to the `#auto_session_timeout_js`
|
61
|
+
helper method inside the body tags in your views. The easiest way to
|
62
|
+
do this is to insert it once inside your default or application-wide
|
63
|
+
layout. Make sure you are only rendering if the user is logged in,
|
64
|
+
otherwise the gem will attempt to force non-existent sessions to
|
65
|
+
timeout, wreaking havoc:
|
66
|
+
|
67
|
+
```erb
|
68
|
+
<body>
|
69
|
+
<% if current_user %>
|
70
|
+
<%= auto_session_timeout_js %>
|
71
|
+
<% end %>
|
72
|
+
</body>
|
73
|
+
```
|
43
74
|
|
44
75
|
You need to setup two actions: one to return the session status and
|
45
76
|
another that runs when the session times out. You can use the default
|
46
|
-
actions included with the
|
77
|
+
actions included with the gem by inserting this line in your target
|
47
78
|
controller (most likely your user or session controller):
|
48
79
|
|
49
|
-
|
50
|
-
|
51
|
-
|
80
|
+
```ruby
|
81
|
+
class SessionsController < ApplicationController
|
82
|
+
auto_session_timeout_actions
|
83
|
+
end
|
84
|
+
```
|
52
85
|
|
53
86
|
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
|
87
|
+
the `#render_session_status` and `#render_session_timeout` methods to
|
88
|
+
use the default implementation from the gem, or you can define the
|
56
89
|
actions entirely with your own custom code:
|
57
90
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
91
|
+
```ruby
|
92
|
+
class SessionsController < ApplicationController
|
93
|
+
def active
|
94
|
+
render_session_status
|
95
|
+
end
|
96
|
+
|
97
|
+
def timeout
|
98
|
+
render_session_timeout
|
99
|
+
end
|
100
|
+
end
|
101
|
+
```
|
67
102
|
|
68
|
-
In any of these cases, make sure to properly map the actions in
|
69
|
-
|
103
|
+
In any of these cases, make sure to properly map the actions in your
|
104
|
+
routes.rb file:
|
70
105
|
|
71
|
-
|
72
|
-
|
106
|
+
```ruby
|
107
|
+
get "active", to: "sessions#active"
|
108
|
+
get "timeout", to: "sessions#timeout"
|
109
|
+
```
|
73
110
|
|
74
111
|
You're done! Enjoy watching your sessions automatically timeout.
|
75
112
|
|
76
|
-
##
|
113
|
+
## Using with Devise
|
114
|
+
|
115
|
+
When using Devise for authentication you will need to add a scoped
|
116
|
+
sessions controller and call the timeout actions helper there.
|
117
|
+
For example:
|
118
|
+
|
119
|
+
```ruby
|
120
|
+
class Users::SessionsController < Devise::SessionsController
|
121
|
+
auto_session_timeout_actions
|
122
|
+
end
|
123
|
+
```
|
124
|
+
|
125
|
+
In your routes.rb file you will need to declare your scoped controller
|
126
|
+
and declare the timeout actions inside the same Devise scope:
|
127
|
+
|
128
|
+
```ruby
|
129
|
+
Rails.application.routes.draw do
|
130
|
+
devise_for :users, controllers: { sessions: "users/sessions" }
|
131
|
+
|
132
|
+
devise_scope :user do
|
133
|
+
get "active", to: "users/sessions#active"
|
134
|
+
get "timeout", to: "users/sessions#timeout"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
```
|
138
|
+
|
139
|
+
You can use Devise's `#user_signed_in?` method when you call the JS helper
|
140
|
+
method in your view:
|
141
|
+
|
142
|
+
```erb
|
143
|
+
<body>
|
144
|
+
<% if user_signed_in? %>
|
145
|
+
<%= auto_session_timeout_js %>
|
146
|
+
<% end %>
|
147
|
+
</body>
|
148
|
+
```
|
149
|
+
|
150
|
+
## Optional Configuration
|
77
151
|
|
78
152
|
By default, the JavaScript code checks the server every 60 seconds for
|
79
153
|
active sessions. If you prefer that it check more frequently, pass a
|
80
154
|
frequency attribute to the helper method. The frequency is given in
|
81
155
|
seconds. The following example checks the server every 15 seconds:
|
82
156
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
</body>
|
91
|
-
</html>
|
92
|
-
|
93
|
-
## TODO
|
94
|
-
|
95
|
-
* current_user must be defined
|
96
|
-
* using Prototype vs. jQuery
|
97
|
-
* setting timeout in controller vs. user
|
157
|
+
```erb
|
158
|
+
<body>
|
159
|
+
<% if current_user %>
|
160
|
+
<%= auto_session_timeout_js frequency: 15 %>
|
161
|
+
<% end %>
|
162
|
+
</body>
|
163
|
+
```
|
98
164
|
|
99
165
|
## Contributing
|
100
166
|
|
@@ -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
@@ -6,9 +6,10 @@ module AutoSessionTimeout
|
|
6
6
|
|
7
7
|
module ClassMethods
|
8
8
|
def auto_session_timeout(seconds=nil)
|
9
|
+
protect_from_forgery except: [:active, :timeout]
|
9
10
|
prepend_before_action do |c|
|
10
|
-
if c
|
11
|
-
c
|
11
|
+
if session_expired?(c) && !signing_in?(c)
|
12
|
+
handle_session_reset(c)
|
12
13
|
else
|
13
14
|
unless c.request.original_url.start_with?(c.send(:active_url))
|
14
15
|
offset = seconds || (current_user.respond_to?(:auto_timeout) ? current_user.auto_timeout : nil)
|
@@ -30,8 +31,28 @@ module AutoSessionTimeout
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def render_session_timeout
|
33
|
-
flash[:notice] = "Your session has timed out."
|
34
|
-
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 handle_session_reset(c)
|
41
|
+
c.send :reset_session
|
42
|
+
end
|
43
|
+
|
44
|
+
def signing_in?(c)
|
45
|
+
c.request.env["PATH_INFO"] == sign_in_path && c.request.env["REQUEST_METHOD"] == "POST"
|
46
|
+
end
|
47
|
+
|
48
|
+
def session_expired?(c)
|
49
|
+
c.session[:auto_session_expires_at].try(:<, Time.now)
|
50
|
+
end
|
51
|
+
|
52
|
+
def sign_in_path
|
53
|
+
user_session_path
|
54
|
+
rescue
|
55
|
+
"/login"
|
35
56
|
end
|
36
57
|
|
37
58
|
end
|
@@ -1,34 +1,26 @@
|
|
1
1
|
module AutoSessionTimeoutHelper
|
2
2
|
def auto_session_timeout_js(options={})
|
3
3
|
frequency = options[:frequency] || 60
|
4
|
-
|
4
|
+
attributes = options[:attributes] || {}
|
5
5
|
code = <<JS
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
}
|
19
|
-
});
|
20
|
-
setTimeout(PeriodicalQuery, (#{frequency} * 1000));
|
21
|
-
}
|
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();
|
22
18
|
setTimeout(PeriodicalQuery, (#{frequency} * 1000));
|
23
|
-
} else {
|
24
|
-
$.PeriodicalUpdater('/active', {minTimeout:#{frequency * 1000}, multiplier:0, method:'get', verbose:#{verbosity}}, function(remoteData, success) {
|
25
|
-
if (success == 'success' && remoteData == 'false')
|
26
|
-
window.location.href = '/timeout';
|
27
|
-
});
|
28
19
|
}
|
20
|
+
setTimeout(PeriodicalQuery, (#{frequency} * 1000));
|
29
21
|
JS
|
30
|
-
javascript_tag(code)
|
22
|
+
javascript_tag(code, attributes)
|
31
23
|
end
|
32
24
|
end
|
33
25
|
|
34
|
-
ActionView::Base.send :include, AutoSessionTimeoutHelper
|
26
|
+
ActionView::Base.send :include, AutoSessionTimeoutHelper
|
@@ -2,46 +2,40 @@ require File.dirname(__FILE__) + '/test_helper'
|
|
2
2
|
|
3
3
|
describe AutoSessionTimeoutHelper do
|
4
4
|
|
5
|
-
|
5
|
+
class StubView
|
6
|
+
include AutoSessionTimeoutHelper
|
7
|
+
include ActionView::Helpers::JavaScriptHelper
|
8
|
+
include ActionView::Helpers::TagHelper
|
9
|
+
|
10
|
+
def timeout_path
|
11
|
+
"/timeout"
|
12
|
+
end
|
13
|
+
|
14
|
+
def active_path
|
15
|
+
"/active"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
subject { StubView.new }
|
6
20
|
|
7
21
|
describe "#auto_session_timeout_js" do
|
8
22
|
it "returns correct JS" do
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
if (e.responseText == 'false') window.location.href = '/timeout';
|
14
|
-
}});
|
15
|
-
}else if(typeof(jQuery) != 'undefined'){
|
16
|
-
function PeriodicalQuery() {
|
17
|
-
$.ajax({
|
18
|
-
url: '/active',
|
19
|
-
success: function(data) {
|
20
|
-
if(data == 'false'){
|
21
|
-
window.location.href = '/timeout';
|
22
|
-
}
|
23
|
-
}
|
24
|
-
});
|
25
|
-
setTimeout(PeriodicalQuery, (60 * 1000));
|
26
|
-
}
|
27
|
-
setTimeout(PeriodicalQuery, (60 * 1000));
|
28
|
-
} else {
|
29
|
-
$.PeriodicalUpdater('/active', {minTimeout:60000, multiplier:0, method:'get', verbose:2}, function(remoteData, success) {
|
30
|
-
if (success == 'success' && remoteData == 'false')
|
31
|
-
window.location.href = '/timeout';
|
32
|
-
});
|
33
|
-
}
|
34
|
-
|
35
|
-
//]]>
|
36
|
-
</script>", subject.auto_session_timeout_js
|
23
|
+
js = subject.auto_session_timeout_js
|
24
|
+
assert js.include?("window.location.href = '/timeout'")
|
25
|
+
assert js.include?("request.open('GET', '/active', true)")
|
26
|
+
assert js.include?("setTimeout(PeriodicalQuery, (60 * 1000))")
|
37
27
|
end
|
38
28
|
|
39
29
|
it "uses custom frequency when given" do
|
40
|
-
assert_match
|
30
|
+
assert_match %r{120}, subject.auto_session_timeout_js(frequency: 120)
|
41
31
|
end
|
42
32
|
|
43
33
|
it "uses 60 when custom frequency is nil" do
|
44
|
-
assert_match
|
34
|
+
assert_match %r{60}, subject.auto_session_timeout_js(frequency: nil)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "accepts attributes" do
|
38
|
+
assert_match %r{data-turbolinks-eval="false"}, subject.auto_session_timeout_js(attributes: { 'data-turbolinks-eval': 'false' })
|
45
39
|
end
|
46
40
|
end
|
47
41
|
|
metadata
CHANGED
@@ -1,72 +1,84 @@
|
|
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.8
|
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-11-11 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: []
|
@@ -74,6 +86,7 @@ extensions: []
|
|
74
86
|
extra_rdoc_files: []
|
75
87
|
files:
|
76
88
|
- ".gitignore"
|
89
|
+
- ".travis.yml"
|
77
90
|
- CHANGELOG
|
78
91
|
- Gemfile
|
79
92
|
- LICENSE.txt
|
@@ -92,7 +105,7 @@ 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
|
@@ -107,9 +120,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
120
|
- !ruby/object:Gem::Version
|
108
121
|
version: '0'
|
109
122
|
requirements: []
|
110
|
-
|
111
|
-
|
112
|
-
signing_key:
|
123
|
+
rubygems_version: 3.2.22
|
124
|
+
signing_key:
|
113
125
|
specification_version: 4
|
114
126
|
summary: Provides automatic session timeout in a Rails application.
|
115
127
|
test_files:
|