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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MzgzYWM4ODdjNTcwYWI5MmMxZDA0ZDc3NjBjYzRlNmJiN2Q4ZDk3OQ==
5
- data.tar.gz: !binary |-
6
- ZTU4MzEyZDc4OTE4YmVmZWM2NmUwY2EwYTI2YjcxZjU1NzRiZDM4NA==
7
- !binary "U0hBNTEy":
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
- 6/22/13 - Switched to Bundler for generating the gemspec [Matthew Bass]
1
+ 2021-02-02 - v0.9.7
2
2
 
3
- 4/22/09 - Initial import [Matthew Bass]
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
@@ -1,4 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ rails_version = ENV['RAILS_VERSION']
4
+ gem 'actionpack', rails_version
5
+
3
6
  # Specify your gem's dependencies in auto-session-timeout.gemspec
4
7
  gemspec
data/README.md CHANGED
@@ -1,16 +1,20 @@
1
- # auto-session-timeout
1
+ [![Build Status](https://travis-ci.com/pelargir/auto-session-timeout.svg?branch=master)](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 plugin is a necessity.
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
- gem 'auto-session-timeout'
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
- class ApplicationController < ActionController::Base
28
- auto_session_timeout 1.hour
29
- ...
30
- end
31
-
32
- You will also need to insert this line inside the body tags in your
33
- views. The easiest way to do this is to insert it once inside your
34
- default or application-wide layout. Make sure you are only rendering
35
- it if the user is logged in, otherwise the plugin will attempt to force
36
- non-existent sessions to timeout, wreaking havoc:
37
-
38
- <body>
39
- <% if current_user %>
40
- <%= auto_session_timeout_js %>
41
- <% end %>
42
- </body>
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 plugin by inserting this line in your target
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
- class SessionsController < ApplicationController
50
- auto_session_timeout_actions
51
- end
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 use
55
- the default implementation from the plugin, or you can define 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
- class SessionsController < ApplicationController
59
- def active
60
- render_session_status
61
- end
62
-
63
- def timeout
64
- render_session_timeout
65
- end
66
- end
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
- your routes.rb file:
98
+ In any of these cases, make sure to properly map the actions in your
99
+ routes.rb file:
70
100
 
71
- match 'active' => 'sessions#active', via: :get
72
- match 'timeout' => 'sessions#timeout', via: :get
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
- <html>
84
- <head>...</head>
85
- <body>
86
- <% if current_user %>
87
- <%= auto_session_timeout_js frequency: 15 %>
88
- <% end %>
89
- ...
90
- </body>
91
- </html>
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
- * setting timeout in controller vs. user
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{Provides automatic session timeout in a Rails application.}
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.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
23
- spec.add_development_dependency "minitest", "~> 4.2"
24
- spec.add_development_dependency "actionpack", "~> 3.2"
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
@@ -1,7 +1,7 @@
1
1
  module Auto
2
2
  module Session
3
3
  module Timeout
4
- VERSION = "0.9.2"
4
+ VERSION = "0.9.7"
5
5
  end
6
6
  end
7
7
  end
@@ -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
- prepend_before_filter do |c|
11
- if c.session[:auto_session_expires_at] && c.session[:auto_session_expires_at] < Time.now
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.url_for(c.params).start_with?(c.send(:active_url))
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 text: !!current_user, status: 200
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 "/login"
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
- if (typeof(Ajax) != 'undefined') {
6
- new Ajax.PeriodicalUpdater('', '/active', {frequency:#{frequency}, method:'get', onSuccess: function(e) {
7
- if (e.responseText == 'false') window.location.href = '/timeout';
8
- }});
9
- } else {
10
- $.PeriodicalUpdater('/active', {minTimeout:#{frequency * 1000}, multiplier:0, method:'get', verbose:2}, function(remoteData, success) {
11
- if (success == 'success' && remoteData == 'false')
12
- window.location.href = '/timeout';
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
- subject { Class.new(ActionView::Base).new }
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
- assert_equal "<script type=\"text/javascript\">
10
- //<![CDATA[
11
- if (typeof(Ajax) != 'undefined') {
12
- new Ajax.PeriodicalUpdater('', '/active', {frequency:60, method:'get', onSuccess: function(e) {
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 /frequency:120/, subject.auto_session_timeout_js(frequency: 120)
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 /frequency:60/, subject.auto_session_timeout_js(frequency: nil)
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.2
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: 2013-07-24 00:00:00.000000000 Z
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
20
- type: :development
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: '1.3'
29
+ version: '3.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '7'
27
33
  - !ruby/object:Gem::Dependency
28
- name: rake
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: minitest
48
+ name: rake
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - ~>
51
+ - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '4.2'
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: '4.2'
60
+ version: '13.0'
55
61
  - !ruby/object:Gem::Dependency
56
- name: actionpack
62
+ name: minitest
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - ~>
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
- version: '3.2'
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: '3.2'
69
- description: Provides automatic session timeout in a Rails application.
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
- rubyforge_project:
111
- rubygems_version: 2.0.3
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: