authgasm 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/Manifest +85 -0
  3. data/README.rdoc +164 -0
  4. data/Rakefile +15 -0
  5. data/authgasm.gemspec +183 -0
  6. data/init.rb +2 -0
  7. data/lib/authgasm.rb +18 -0
  8. data/lib/authgasm/acts_as_authentic.rb +200 -0
  9. data/lib/authgasm/controller.rb +16 -0
  10. data/lib/authgasm/session/active_record_trickery.rb +30 -0
  11. data/lib/authgasm/session/base.rb +365 -0
  12. data/lib/authgasm/session/callbacks.rb +47 -0
  13. data/lib/authgasm/session/config.rb +193 -0
  14. data/lib/authgasm/session/errors.rb +12 -0
  15. data/lib/authgasm/sha256_crypto_provider.rb +13 -0
  16. data/lib/authgasm/version.rb +56 -0
  17. data/test_app/README +256 -0
  18. data/test_app/Rakefile +10 -0
  19. data/test_app/app/controllers/application.rb +46 -0
  20. data/test_app/app/controllers/user_sessions_controller.rb +25 -0
  21. data/test_app/app/controllers/users_controller.rb +37 -0
  22. data/test_app/app/helpers/application_helper.rb +3 -0
  23. data/test_app/app/helpers/user_sessions_helper.rb +2 -0
  24. data/test_app/app/helpers/users_helper.rb +2 -0
  25. data/test_app/app/models/user.rb +3 -0
  26. data/test_app/app/models/user_session.rb +3 -0
  27. data/test_app/app/views/asses/edit.html.erb +12 -0
  28. data/test_app/app/views/asses/index.html.erb +18 -0
  29. data/test_app/app/views/asses/new.html.erb +11 -0
  30. data/test_app/app/views/asses/show.html.erb +3 -0
  31. data/test_app/app/views/layouts/application.html.erb +25 -0
  32. data/test_app/app/views/user_sessions/new.html.erb +13 -0
  33. data/test_app/app/views/users/_form.erb +15 -0
  34. data/test_app/app/views/users/edit.html.erb +8 -0
  35. data/test_app/app/views/users/new.html.erb +8 -0
  36. data/test_app/app/views/users/show.html.erb +19 -0
  37. data/test_app/config/boot.rb +109 -0
  38. data/test_app/config/database.yml +19 -0
  39. data/test_app/config/environment.rb +69 -0
  40. data/test_app/config/environments/development.rb +17 -0
  41. data/test_app/config/environments/production.rb +22 -0
  42. data/test_app/config/environments/test.rb +22 -0
  43. data/test_app/config/initializers/inflections.rb +10 -0
  44. data/test_app/config/initializers/mime_types.rb +5 -0
  45. data/test_app/config/initializers/new_rails_defaults.rb +17 -0
  46. data/test_app/config/routes.rb +7 -0
  47. data/test_app/db/development.sqlite3 +0 -0
  48. data/test_app/db/migrate/20081023040052_create_users.rb +17 -0
  49. data/test_app/db/schema.rb +25 -0
  50. data/test_app/db/test.sqlite3 +0 -0
  51. data/test_app/doc/README_FOR_APP +2 -0
  52. data/test_app/public/404.html +30 -0
  53. data/test_app/public/422.html +30 -0
  54. data/test_app/public/500.html +30 -0
  55. data/test_app/public/dispatch.cgi +10 -0
  56. data/test_app/public/dispatch.fcgi +24 -0
  57. data/test_app/public/dispatch.rb +10 -0
  58. data/test_app/public/favicon.ico +0 -0
  59. data/test_app/public/images/rails.png +0 -0
  60. data/test_app/public/javascripts/application.js +2 -0
  61. data/test_app/public/javascripts/controls.js +963 -0
  62. data/test_app/public/javascripts/dragdrop.js +972 -0
  63. data/test_app/public/javascripts/effects.js +1120 -0
  64. data/test_app/public/javascripts/prototype.js +4225 -0
  65. data/test_app/public/robots.txt +5 -0
  66. data/test_app/public/stylesheets/scaffold.css +62 -0
  67. data/test_app/script/about +4 -0
  68. data/test_app/script/console +3 -0
  69. data/test_app/script/dbconsole +3 -0
  70. data/test_app/script/destroy +3 -0
  71. data/test_app/script/generate +3 -0
  72. data/test_app/script/performance/benchmarker +3 -0
  73. data/test_app/script/performance/profiler +3 -0
  74. data/test_app/script/performance/request +3 -0
  75. data/test_app/script/plugin +3 -0
  76. data/test_app/script/process/inspector +3 -0
  77. data/test_app/script/process/reaper +3 -0
  78. data/test_app/script/process/spawner +3 -0
  79. data/test_app/script/runner +3 -0
  80. data/test_app/script/server +3 -0
  81. data/test_app/test/fixtures/users.yml +6 -0
  82. data/test_app/test/functional/user_sessions_controller_test.rb +15 -0
  83. data/test_app/test/functional/users_controller_test.rb +8 -0
  84. data/test_app/test/test_helper.rb +38 -0
  85. data/test_app/test/unit/ass_test.rb +8 -0
  86. data/test_app/test/unit/user_test.rb +8 -0
  87. metadata +182 -0
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2007 Ben Johnson of Binary Logic (binarylogic.com)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Manifest ADDED
@@ -0,0 +1,85 @@
1
+ init.rb
2
+ lib/authgasm/acts_as_authentic.rb
3
+ lib/authgasm/controller.rb
4
+ lib/authgasm/session/active_record_trickery.rb
5
+ lib/authgasm/session/base.rb
6
+ lib/authgasm/session/callbacks.rb
7
+ lib/authgasm/session/config.rb
8
+ lib/authgasm/session/errors.rb
9
+ lib/authgasm/sha256_crypto_provider.rb
10
+ lib/authgasm/version.rb
11
+ lib/authgasm.rb
12
+ Manifest
13
+ MIT-LICENSE
14
+ Rakefile
15
+ README.rdoc
16
+ test_app/app/controllers/application.rb
17
+ test_app/app/controllers/user_sessions_controller.rb
18
+ test_app/app/controllers/users_controller.rb
19
+ test_app/app/helpers/application_helper.rb
20
+ test_app/app/helpers/user_sessions_helper.rb
21
+ test_app/app/helpers/users_helper.rb
22
+ test_app/app/models/user.rb
23
+ test_app/app/models/user_session.rb
24
+ test_app/app/views/asses/edit.html.erb
25
+ test_app/app/views/asses/index.html.erb
26
+ test_app/app/views/asses/new.html.erb
27
+ test_app/app/views/asses/show.html.erb
28
+ test_app/app/views/layouts/application.html.erb
29
+ test_app/app/views/user_sessions/new.html.erb
30
+ test_app/app/views/users/_form.erb
31
+ test_app/app/views/users/edit.html.erb
32
+ test_app/app/views/users/new.html.erb
33
+ test_app/app/views/users/show.html.erb
34
+ test_app/config/boot.rb
35
+ test_app/config/database.yml
36
+ test_app/config/environment.rb
37
+ test_app/config/environments/development.rb
38
+ test_app/config/environments/production.rb
39
+ test_app/config/environments/test.rb
40
+ test_app/config/initializers/inflections.rb
41
+ test_app/config/initializers/mime_types.rb
42
+ test_app/config/initializers/new_rails_defaults.rb
43
+ test_app/config/routes.rb
44
+ test_app/db/development.sqlite3
45
+ test_app/db/migrate/20081023040052_create_users.rb
46
+ test_app/db/schema.rb
47
+ test_app/db/test.sqlite3
48
+ test_app/doc/README_FOR_APP
49
+ test_app/public/404.html
50
+ test_app/public/422.html
51
+ test_app/public/500.html
52
+ test_app/public/dispatch.cgi
53
+ test_app/public/dispatch.fcgi
54
+ test_app/public/dispatch.rb
55
+ test_app/public/favicon.ico
56
+ test_app/public/images/rails.png
57
+ test_app/public/javascripts/application.js
58
+ test_app/public/javascripts/controls.js
59
+ test_app/public/javascripts/dragdrop.js
60
+ test_app/public/javascripts/effects.js
61
+ test_app/public/javascripts/prototype.js
62
+ test_app/public/robots.txt
63
+ test_app/public/stylesheets/scaffold.css
64
+ test_app/Rakefile
65
+ test_app/README
66
+ test_app/script/about
67
+ test_app/script/console
68
+ test_app/script/dbconsole
69
+ test_app/script/destroy
70
+ test_app/script/generate
71
+ test_app/script/performance/benchmarker
72
+ test_app/script/performance/profiler
73
+ test_app/script/performance/request
74
+ test_app/script/plugin
75
+ test_app/script/process/inspector
76
+ test_app/script/process/reaper
77
+ test_app/script/process/spawner
78
+ test_app/script/runner
79
+ test_app/script/server
80
+ test_app/test/fixtures/users.yml
81
+ test_app/test/functional/user_sessions_controller_test.rb
82
+ test_app/test/functional/users_controller_test.rb
83
+ test_app/test/test_helper.rb
84
+ test_app/test/unit/ass_test.rb
85
+ test_app/test/unit/user_test.rb
data/README.rdoc ADDED
@@ -0,0 +1,164 @@
1
+ = Authgasm
2
+
3
+ Authgasm is "RESTful rails authentication done right"
4
+
5
+ The last thing we need is another authentication solution for rails, right? That's what I thought. It was disappointing to find that all of the solutions were overly complicated, bloated, made too many assumptions about my app, written poorly, or were just plain confusing. I wanted something simple. Something that feels like it is a part of rails. Something that I could understand and not feel like authentication is this daunting / annoying task that litters my application with redundant code. So I decided to scratch my own itch by creating Authgasm.
6
+
7
+ Wouldn't it be nice if we could do something like:
8
+
9
+ class UserSessionsController < ApplicationController
10
+ def new
11
+ @user_session = UserSession.new
12
+ end
13
+
14
+ def create
15
+ @user_session = UserSession.new(params[:user_session])
16
+ if @user_session.create
17
+ redirect_to my_account_url
18
+ else
19
+ render :action => :new
20
+ end
21
+ end
22
+
23
+ def destroy
24
+ @user_session.destroy
25
+ end
26
+ end
27
+
28
+ Look familiar? If you didn't know any better, you would think UserSession was an ActiveRecord model. I think that's pretty cool. Why is that cool? Because it fits nicely into the RESTful development pattern and its a style we all know and love. Wouldn't this be cool too...
29
+
30
+ <%= error_messages_for "user_session" %>
31
+ <% form_for @user_session do |f| %>
32
+ <%= f.label :login %><br />
33
+ <%= f.text_field :login %><br />
34
+ <br />
35
+ <%= f.label :password %><br />
36
+ <%= f.password_field :password %><br />
37
+ <br />
38
+ <%= f.submit "Login" %>
39
+ <% end %>
40
+
41
+ Oh, and how about this...
42
+
43
+ class ApplicationController
44
+ before_filter :load_user
45
+
46
+ protected
47
+ def load_user
48
+ @user_session = UserSession.find
49
+ @current_user = @user_session && @user_session.record
50
+ end
51
+ end
52
+
53
+ Authgasm makes this a reality. Hopefully I got your interest. This is just the tip of the ice berg. Keep reading to find out everything Authgasm can do.
54
+
55
+ == Helpful links
56
+
57
+ * <b>Documentation:</b> http://authgasm.rubyforge.org
58
+ * <b>Authgasm tutorial:</b> coming soon...
59
+ * <b>Live example of the tutorial above (with source):</b> coming soon....
60
+ * <b>Bugs / feature suggestions:</b> http://binarylogic.lighthouseapp.com/projects/18752-authgasm
61
+
62
+ == Install and use
63
+
64
+ Installing Authgasm and setting it up is very simple. Just like rails, Authgasm favors convention over configuration. As a result, it assumes a few things about your app. This guide will walk you through setting up Authgasm in your app and what Authgasm assumes.
65
+
66
+ === Install the gem / plugin
67
+
68
+ $ sudo gem install authgasm
69
+ $ cd vendor/plugins
70
+ $ sudo gem unpack authgasm
71
+
72
+ Or as a plugin
73
+
74
+ script/plugin install git://github.com/binarylogic/authgasm.git
75
+
76
+ === Configuration
77
+
78
+ Before we start, it is important you understand the basics behind Authgasm. Authgasm is split into 2 parts.
79
+
80
+ 1. Your model that you will be authenticating with, such as User
81
+ 2. Your session that represents a login, such as UserSession
82
+
83
+ Each have their own configuration, so it can be as flexible as you need it to be. What's convenient is that the configuration for your model defaults to the configuration you set in your session. So if you set the configuration in your session, you won't have to repeat yourself in your model.
84
+
85
+ For information on configuration please see Searchgasm::ActsAsAuthentic and Authgasm::Session::Config::ClassMethods
86
+
87
+ === Set up your model
88
+
89
+ Make sure you have a model that you will be authenticating with. For this example let's say you have a User model:
90
+
91
+ class User < ActiveRecord::Base
92
+ acts_as_authentic # for options see documentation: Authgasm::ActsAsAuthentic
93
+ end
94
+
95
+ The user model needs to have the following columns. The names of these columns can be changed with configuration.
96
+
97
+ t.string :login, :null => false
98
+ t.string :crypted_password, :null => false
99
+ t.string :password_salt, :null => false # not needed if you are encrypting your pw instead of using a hash algorithm
100
+ t.string :remember_token, :null => false
101
+ t.integer :loging_count # This is optional, it is a "magic" column, just like "created_at". See below for a list of all magic columns.
102
+
103
+ Create your user_session.rb file:
104
+
105
+ # app/models/user_session.rb
106
+ class UserSession < Authgasm::Session::Base
107
+ end
108
+
109
+ Done! Now go use it just like you would with any other ActiveRecord model (see above).
110
+
111
+ == Magic Columns
112
+
113
+ Just like ActiveRecord has "magic" columns, such as: created_at and updated_at. Authgasm has its own "magic" columns too:
114
+
115
+ Column name Description
116
+ login_count Increased every time and explicit login is made. This will *NOT* increase if logging in by a session, cookie, or basic http auth
117
+ last_click_at Updates every time the user logs in, either by explicitly logging in, or logging in by cookie, session, or http auth
118
+ current_login_at Updates with the current time when an explicit login is made.
119
+ last_login_at Updates with the value of current_login_at before it is reset.
120
+ current_login_ip Updates with the request remote_ip when an explicit login is made.
121
+ last_login_ip Updates with the value of current_login_ip before it is reset.
122
+
123
+ == Magic States
124
+
125
+ Authgasm tries to check the state of the record before creating the session. If your record responds to the following methods and any of them return false, validation will fail:
126
+
127
+ Method name Description
128
+ approved? Has the record been approved?
129
+ confirmed? Has the record been conirmed?
130
+ inactive? Is the record marked as inactive?
131
+
132
+ What's neat about these is that these are checked upon any type of login. When logging in explicitly, by cookie, session, or basic http auth. If any of these return false validation will fail and a session will not be created.
133
+
134
+ == Hooks / Callbacks
135
+
136
+ Just like ActiveRecord you can create your own hooks / callbacks so that you can do whatever you want when certain actions are performed. Here they are:
137
+
138
+ before_create
139
+ after_create
140
+ before_destroy
141
+ after_destroy
142
+ before_update
143
+ after_update
144
+ before_validation
145
+ after_validation
146
+
147
+ == Automatic Session Updating
148
+
149
+ This is one of my favorite features that I think is pretty cool. What if a user changes their password? You have to re-log them in with the new password, recreate the session, etc, pain in the ass. Or what if a user creates a new user account? You have to do the same thing. It makes your UsersController kind of dirty and it's kind of annoying. What's cool about this is that we pulled the UserSession down into the models, where we can play around with it. Why not have the User model take care of this for us in an after_save? Whoa! Now you don't have to worry about it at all. In fact, the acts_as_authentic method has an option to do this automatically for you. Zing! Man, Authgasm might be a little too awesome. So...
150
+
151
+ @current_user.password = "my new password"
152
+ @current_user.confirm_password = "my new password"
153
+ @current_user.save # automatically updates the sessions for you!
154
+
155
+ When things come together like this I think its a sign that you are doing something right. Put that in your pipe and smoke it!
156
+
157
+ == How it works
158
+
159
+ Interested in how this all works. Basically a before_filter is set in your controller which lets Authgasm know about the current controller object. This allows Authgasm to set sessions, cookies, login via basic http auth, etc. Don't worry, this is thread safe.
160
+
161
+ From there is it pretty simple. When you try to create a new session the record is authenticated and then all of the session / cookie magic is done for you.
162
+
163
+
164
+ Copyright (c) 2008 Ben Johnson of [Binary Logic](http://www.binarylogic.com), released under the MIT license
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ require 'rubygems'
2
+ require 'echoe'
3
+
4
+ require File.dirname(__FILE__) << "/lib/authgasm/version"
5
+
6
+ Echoe.new 'authgasm' do |p|
7
+ p.version = Authgasm::Version::STRING
8
+ p.author = "Ben Johnson of Binary Logic"
9
+ p.email = 'bjohnson@binarylogic.com'
10
+ p.project = 'authgasm'
11
+ p.summary = "Rails authentication done right"
12
+ p.url = "http://github.com/binarylogic/authgasm"
13
+ p.dependencies = %w(activesupport activerecord)
14
+ p.include_rakefile = true
15
+ end
data/authgasm.gemspec ADDED
@@ -0,0 +1,183 @@
1
+
2
+ # Gem::Specification for Authgasm-0.9.0
3
+ # Originally generated by Echoe
4
+
5
+ --- !ruby/object:Gem::Specification
6
+ name: authgasm
7
+ version: !ruby/object:Gem::Version
8
+ version: 0.9.0
9
+ platform: ruby
10
+ authors:
11
+ - Ben Johnson of Binary Logic
12
+ autorequire:
13
+ bindir: bin
14
+
15
+ date: 2008-10-24 00:00:00 -04:00
16
+ default_executable:
17
+ dependencies:
18
+ - !ruby/object:Gem::Dependency
19
+ name: activesupport
20
+ type: :runtime
21
+ version_requirement:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: "0"
27
+ version:
28
+ - !ruby/object:Gem::Dependency
29
+ name: activerecord
30
+ type: :runtime
31
+ version_requirement:
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: "0"
37
+ version:
38
+ - !ruby/object:Gem::Dependency
39
+ name: echoe
40
+ type: :development
41
+ version_requirement:
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
47
+ version:
48
+ description: Rails authentication done right
49
+ email: bjohnson@binarylogic.com
50
+ executables: []
51
+
52
+ extensions: []
53
+
54
+ extra_rdoc_files:
55
+ - lib/authgasm/acts_as_authentic.rb
56
+ - lib/authgasm/controller.rb
57
+ - lib/authgasm/session/active_record_trickery.rb
58
+ - lib/authgasm/session/base.rb
59
+ - lib/authgasm/session/callbacks.rb
60
+ - lib/authgasm/session/config.rb
61
+ - lib/authgasm/session/errors.rb
62
+ - lib/authgasm/sha256_crypto_provider.rb
63
+ - lib/authgasm/version.rb
64
+ - lib/authgasm.rb
65
+ - README.rdoc
66
+ files:
67
+ - init.rb
68
+ - lib/authgasm/acts_as_authentic.rb
69
+ - lib/authgasm/controller.rb
70
+ - lib/authgasm/session/active_record_trickery.rb
71
+ - lib/authgasm/session/base.rb
72
+ - lib/authgasm/session/callbacks.rb
73
+ - lib/authgasm/session/config.rb
74
+ - lib/authgasm/session/errors.rb
75
+ - lib/authgasm/sha256_crypto_provider.rb
76
+ - lib/authgasm/version.rb
77
+ - lib/authgasm.rb
78
+ - Manifest
79
+ - MIT-LICENSE
80
+ - Rakefile
81
+ - README.rdoc
82
+ - test_app/app/controllers/application.rb
83
+ - test_app/app/controllers/user_sessions_controller.rb
84
+ - test_app/app/controllers/users_controller.rb
85
+ - test_app/app/helpers/application_helper.rb
86
+ - test_app/app/helpers/user_sessions_helper.rb
87
+ - test_app/app/helpers/users_helper.rb
88
+ - test_app/app/models/user.rb
89
+ - test_app/app/models/user_session.rb
90
+ - test_app/app/views/asses/edit.html.erb
91
+ - test_app/app/views/asses/index.html.erb
92
+ - test_app/app/views/asses/new.html.erb
93
+ - test_app/app/views/asses/show.html.erb
94
+ - test_app/app/views/layouts/application.html.erb
95
+ - test_app/app/views/user_sessions/new.html.erb
96
+ - test_app/app/views/users/_form.erb
97
+ - test_app/app/views/users/edit.html.erb
98
+ - test_app/app/views/users/new.html.erb
99
+ - test_app/app/views/users/show.html.erb
100
+ - test_app/config/boot.rb
101
+ - test_app/config/database.yml
102
+ - test_app/config/environment.rb
103
+ - test_app/config/environments/development.rb
104
+ - test_app/config/environments/production.rb
105
+ - test_app/config/environments/test.rb
106
+ - test_app/config/initializers/inflections.rb
107
+ - test_app/config/initializers/mime_types.rb
108
+ - test_app/config/initializers/new_rails_defaults.rb
109
+ - test_app/config/routes.rb
110
+ - test_app/db/development.sqlite3
111
+ - test_app/db/migrate/20081023040052_create_users.rb
112
+ - test_app/db/schema.rb
113
+ - test_app/db/test.sqlite3
114
+ - test_app/doc/README_FOR_APP
115
+ - test_app/public/404.html
116
+ - test_app/public/422.html
117
+ - test_app/public/500.html
118
+ - test_app/public/dispatch.cgi
119
+ - test_app/public/dispatch.fcgi
120
+ - test_app/public/dispatch.rb
121
+ - test_app/public/favicon.ico
122
+ - test_app/public/images/rails.png
123
+ - test_app/public/javascripts/application.js
124
+ - test_app/public/javascripts/controls.js
125
+ - test_app/public/javascripts/dragdrop.js
126
+ - test_app/public/javascripts/effects.js
127
+ - test_app/public/javascripts/prototype.js
128
+ - test_app/public/robots.txt
129
+ - test_app/public/stylesheets/scaffold.css
130
+ - test_app/Rakefile
131
+ - test_app/README
132
+ - test_app/script/about
133
+ - test_app/script/console
134
+ - test_app/script/dbconsole
135
+ - test_app/script/destroy
136
+ - test_app/script/generate
137
+ - test_app/script/performance/benchmarker
138
+ - test_app/script/performance/profiler
139
+ - test_app/script/performance/request
140
+ - test_app/script/plugin
141
+ - test_app/script/process/inspector
142
+ - test_app/script/process/reaper
143
+ - test_app/script/process/spawner
144
+ - test_app/script/runner
145
+ - test_app/script/server
146
+ - test_app/test/fixtures/users.yml
147
+ - test_app/test/functional/user_sessions_controller_test.rb
148
+ - test_app/test/functional/users_controller_test.rb
149
+ - test_app/test/test_helper.rb
150
+ - test_app/test/unit/ass_test.rb
151
+ - test_app/test/unit/user_test.rb
152
+ - authgasm.gemspec
153
+ has_rdoc: true
154
+ homepage: http://github.com/binarylogic/authgasm
155
+ post_install_message:
156
+ rdoc_options:
157
+ - --line-numbers
158
+ - --inline-source
159
+ - --title
160
+ - Authgasm
161
+ - --main
162
+ - README.rdoc
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: "0"
170
+ version:
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: "1.2"
176
+ version:
177
+ requirements: []
178
+
179
+ rubyforge_project: authgasm
180
+ rubygems_version: 1.2.0
181
+ specification_version: 2
182
+ summary: Rails authentication done right
183
+ test_files: []