frikandel 1.0.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.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +7 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +10 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +82 -0
  9. data/Rakefile +7 -0
  10. data/frikandel.gemspec +31 -0
  11. data/lib/frikandel.rb +32 -0
  12. data/lib/frikandel/configuration.rb +19 -0
  13. data/lib/frikandel/version.rb +3 -0
  14. data/spec/controllers/application_controller_spec.rb +57 -0
  15. data/spec/controllers/customized_on_expired_cookie_controller_spec.rb +39 -0
  16. data/spec/dummy/README.rdoc +28 -0
  17. data/spec/dummy/Rakefile +6 -0
  18. data/spec/dummy/app/assets/images/.keep +0 -0
  19. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  20. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  21. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  22. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  23. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  24. data/spec/dummy/app/mailers/.keep +0 -0
  25. data/spec/dummy/app/models/.keep +0 -0
  26. data/spec/dummy/app/models/concerns/.keep +0 -0
  27. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  28. data/spec/dummy/bin/bundle +3 -0
  29. data/spec/dummy/bin/rails +4 -0
  30. data/spec/dummy/bin/rake +4 -0
  31. data/spec/dummy/config.ru +4 -0
  32. data/spec/dummy/config/application.rb +28 -0
  33. data/spec/dummy/config/boot.rb +5 -0
  34. data/spec/dummy/config/database.yml +25 -0
  35. data/spec/dummy/config/environment.rb +5 -0
  36. data/spec/dummy/config/environments/development.rb +29 -0
  37. data/spec/dummy/config/environments/production.rb +80 -0
  38. data/spec/dummy/config/environments/test.rb +36 -0
  39. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  40. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  41. data/spec/dummy/config/initializers/inflections.rb +16 -0
  42. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  43. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  44. data/spec/dummy/config/initializers/session_store.rb +3 -0
  45. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  46. data/spec/dummy/config/locales/en.yml +23 -0
  47. data/spec/dummy/config/routes.rb +56 -0
  48. data/spec/dummy/db/test.sqlite3 +0 -0
  49. data/spec/dummy/lib/assets/.keep +0 -0
  50. data/spec/dummy/public/404.html +58 -0
  51. data/spec/dummy/public/422.html +58 -0
  52. data/spec/dummy/public/500.html +57 -0
  53. data/spec/dummy/public/favicon.ico +0 -0
  54. data/spec/lib/frikandel/configuration_spec.rb +43 -0
  55. data/spec/spec_helper.rb +21 -0
  56. data/spec/support/application_controller.rb +16 -0
  57. metadata +242 -0
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/422.html -->
52
+ <div class="dialog">
53
+ <h1>The change you wanted was rejected.</h1>
54
+ <p>Maybe you tried to change something you didn't have access to.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/500.html -->
52
+ <div class="dialog">
53
+ <h1>We're sorry, but something went wrong.</h1>
54
+ </div>
55
+ <p>If you are the application owner check the logs for more information.</p>
56
+ </body>
57
+ </html>
File without changes
@@ -0,0 +1,43 @@
1
+ require "spec_helper"
2
+
3
+ describe Frikandel::Configuration do
4
+
5
+ it "is a singleton" do
6
+ Frikandel::Configuration.should respond_to :instance
7
+ Frikandel::Configuration.instance.should be_a Frikandel::Configuration
8
+ Frikandel::Configuration.instance.should be_equal Frikandel::Configuration.instance
9
+ end
10
+
11
+ it "delegates max_ttl and max_ttl= to the singleton instance" do
12
+ Frikandel::Configuration.instance.should_receive(:max_ttl).and_return(:some_max_ttl)
13
+ Frikandel::Configuration.instance.should_receive(:max_ttl=).with(:some_value).and_return(:some_max_ttl=)
14
+
15
+ Frikandel::Configuration.max_ttl.should eq :some_max_ttl
16
+ Frikandel::Configuration.send(:max_ttl=, :some_value).should eq :some_max_ttl=
17
+ end
18
+
19
+ it "delegates ttl and ttl= to the singleton instance" do
20
+ Frikandel::Configuration.instance.should_receive(:ttl).and_return(:some_ttl)
21
+ Frikandel::Configuration.instance.should_receive(:ttl=).with(:some_value).and_return(:some_ttl=)
22
+
23
+ Frikandel::Configuration.ttl.should eq :some_ttl
24
+ Frikandel::Configuration.send(:ttl=, :some_value).should eq :some_ttl=
25
+ end
26
+
27
+ it "has 24 hours as default-max_ttl" do
28
+ Frikandel::Configuration.max_ttl.should eq 24.hours
29
+ end
30
+
31
+ it "has 2 hours as default-ttl" do
32
+ Frikandel::Configuration.ttl.should eq 2.hours
33
+ end
34
+
35
+ it "ttls can be set" do
36
+ Frikandel::Configuration.max_ttl = 50.hours
37
+ Frikandel::Configuration.ttl = 5.hours
38
+
39
+ Frikandel::Configuration.max_ttl.should eq 50.hours
40
+ Frikandel::Configuration.ttl.should eq 5.hours
41
+ end
42
+
43
+ end
@@ -0,0 +1,21 @@
1
+ ENV["RAILS_ENV"] ||= 'test'
2
+ require File.expand_path("../dummy/config/environment", __FILE__)
3
+ require 'rspec/rails'
4
+ require 'pry'
5
+
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+
12
+ # Run specs in random order to surface order dependencies. If you find an
13
+ # order dependency and want to debug it, you can fix the order by providing
14
+ # the seed, which is printed after each run.
15
+ # --seed 1234
16
+ config.order = 'random'
17
+
18
+ config.before(:each) do
19
+ Frikandel::Configuration.defaults!
20
+ end
21
+ end
@@ -0,0 +1,16 @@
1
+
2
+ Rails.application.routes.draw do
3
+ get "/home" => "application#home", as: :root
4
+ get "/customized_controller_home" => "customized_on_expired_session#home", as: :customized_controller_home
5
+ end
6
+
7
+
8
+ class ApplicationController < ActionController::Base
9
+ include Frikandel::LimitSessionLifetime
10
+
11
+ protect_from_forgery with: :exception
12
+
13
+ def home
14
+ render text: "testing"
15
+ end
16
+ end
metadata ADDED
@@ -0,0 +1,242 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: frikandel
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Taktsoft
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
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: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 3.2.0
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '5.0'
107
+ type: :runtime
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: 3.2.0
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '5.0'
117
+ description: This gem adds a ttl to the session cookie of your application.
118
+ email:
119
+ - developers@taktsoft.com
120
+ executables: []
121
+ extensions: []
122
+ extra_rdoc_files: []
123
+ files:
124
+ - ".gitignore"
125
+ - ".rspec"
126
+ - ".travis.yml"
127
+ - Gemfile
128
+ - Guardfile
129
+ - LICENSE.txt
130
+ - README.md
131
+ - Rakefile
132
+ - frikandel.gemspec
133
+ - lib/frikandel.rb
134
+ - lib/frikandel/configuration.rb
135
+ - lib/frikandel/version.rb
136
+ - spec/controllers/application_controller_spec.rb
137
+ - spec/controllers/customized_on_expired_cookie_controller_spec.rb
138
+ - spec/dummy/README.rdoc
139
+ - spec/dummy/Rakefile
140
+ - spec/dummy/app/assets/images/.keep
141
+ - spec/dummy/app/assets/javascripts/application.js
142
+ - spec/dummy/app/assets/stylesheets/application.css
143
+ - spec/dummy/app/controllers/application_controller.rb
144
+ - spec/dummy/app/controllers/concerns/.keep
145
+ - spec/dummy/app/helpers/application_helper.rb
146
+ - spec/dummy/app/mailers/.keep
147
+ - spec/dummy/app/models/.keep
148
+ - spec/dummy/app/models/concerns/.keep
149
+ - spec/dummy/app/views/layouts/application.html.erb
150
+ - spec/dummy/bin/bundle
151
+ - spec/dummy/bin/rails
152
+ - spec/dummy/bin/rake
153
+ - spec/dummy/config.ru
154
+ - spec/dummy/config/application.rb
155
+ - spec/dummy/config/boot.rb
156
+ - spec/dummy/config/database.yml
157
+ - spec/dummy/config/environment.rb
158
+ - spec/dummy/config/environments/development.rb
159
+ - spec/dummy/config/environments/production.rb
160
+ - spec/dummy/config/environments/test.rb
161
+ - spec/dummy/config/initializers/backtrace_silencers.rb
162
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
163
+ - spec/dummy/config/initializers/inflections.rb
164
+ - spec/dummy/config/initializers/mime_types.rb
165
+ - spec/dummy/config/initializers/secret_token.rb
166
+ - spec/dummy/config/initializers/session_store.rb
167
+ - spec/dummy/config/initializers/wrap_parameters.rb
168
+ - spec/dummy/config/locales/en.yml
169
+ - spec/dummy/config/routes.rb
170
+ - spec/dummy/db/test.sqlite3
171
+ - spec/dummy/lib/assets/.keep
172
+ - spec/dummy/log/test.log
173
+ - spec/dummy/public/404.html
174
+ - spec/dummy/public/422.html
175
+ - spec/dummy/public/500.html
176
+ - spec/dummy/public/favicon.ico
177
+ - spec/lib/frikandel/configuration_spec.rb
178
+ - spec/spec_helper.rb
179
+ - spec/support/application_controller.rb
180
+ homepage: https://github.com/taktsoft/frikandel
181
+ licenses:
182
+ - MIT
183
+ metadata: {}
184
+ post_install_message:
185
+ rdoc_options: []
186
+ require_paths:
187
+ - lib
188
+ required_ruby_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ requirements: []
199
+ rubyforge_project:
200
+ rubygems_version: 2.2.1
201
+ signing_key:
202
+ specification_version: 4
203
+ summary: This gem adds a ttl to the session cookie of your application.
204
+ test_files:
205
+ - spec/dummy/app/controllers/application_controller.rb
206
+ - spec/dummy/app/helpers/application_helper.rb
207
+ - spec/dummy/app/views/layouts/application.html.erb
208
+ - spec/dummy/app/assets/stylesheets/application.css
209
+ - spec/dummy/app/assets/javascripts/application.js
210
+ - spec/dummy/public/404.html
211
+ - spec/dummy/public/500.html
212
+ - spec/dummy/public/422.html
213
+ - spec/dummy/public/favicon.ico
214
+ - spec/dummy/config.ru
215
+ - spec/dummy/README.rdoc
216
+ - spec/dummy/db/test.sqlite3
217
+ - spec/dummy/log/test.log
218
+ - spec/dummy/config/routes.rb
219
+ - spec/dummy/config/application.rb
220
+ - spec/dummy/config/database.yml
221
+ - spec/dummy/config/environments/development.rb
222
+ - spec/dummy/config/environments/test.rb
223
+ - spec/dummy/config/environments/production.rb
224
+ - spec/dummy/config/environment.rb
225
+ - spec/dummy/config/locales/en.yml
226
+ - spec/dummy/config/initializers/backtrace_silencers.rb
227
+ - spec/dummy/config/initializers/wrap_parameters.rb
228
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
229
+ - spec/dummy/config/initializers/mime_types.rb
230
+ - spec/dummy/config/initializers/inflections.rb
231
+ - spec/dummy/config/initializers/secret_token.rb
232
+ - spec/dummy/config/initializers/session_store.rb
233
+ - spec/dummy/config/boot.rb
234
+ - spec/dummy/Rakefile
235
+ - spec/dummy/bin/rake
236
+ - spec/dummy/bin/rails
237
+ - spec/dummy/bin/bundle
238
+ - spec/lib/frikandel/configuration_spec.rb
239
+ - spec/controllers/application_controller_spec.rb
240
+ - spec/controllers/customized_on_expired_cookie_controller_spec.rb
241
+ - spec/spec_helper.rb
242
+ - spec/support/application_controller.rb