mischa-clearance 0.3.3
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.
- data/LICENSE +21 -0
- data/README.textile +136 -0
- data/Rakefile +83 -0
- data/TODO.textile +24 -0
- data/generators/clearance/USAGE +1 -0
- data/generators/clearance/clearance_generator.rb +69 -0
- data/generators/clearance/templates/app/controllers/application.rb +5 -0
- data/generators/clearance/templates/app/controllers/confirmations_controller.rb +3 -0
- data/generators/clearance/templates/app/controllers/passwords_controller.rb +3 -0
- data/generators/clearance/templates/app/controllers/sessions_controller.rb +3 -0
- data/generators/clearance/templates/app/controllers/users_controller.rb +3 -0
- data/generators/clearance/templates/app/models/clearance_mailer.rb +5 -0
- data/generators/clearance/templates/app/models/user.rb +3 -0
- data/generators/clearance/templates/app/views/clearance_mailer/change_password.html.erb +6 -0
- data/generators/clearance/templates/app/views/clearance_mailer/confirmation.html.erb +1 -0
- data/generators/clearance/templates/app/views/confirmations/new.html.erb +6 -0
- data/generators/clearance/templates/app/views/passwords/edit.html.erb +23 -0
- data/generators/clearance/templates/app/views/passwords/new.html.erb +15 -0
- data/generators/clearance/templates/app/views/sessions/new.html.erb +26 -0
- data/generators/clearance/templates/app/views/users/_form.html.erb +13 -0
- data/generators/clearance/templates/app/views/users/edit.html.erb +4 -0
- data/generators/clearance/templates/app/views/users/new.html.erb +4 -0
- data/generators/clearance/templates/test/factories.rb +9 -0
- data/generators/clearance/templates/test/functional/confirmations_controller_test.rb +5 -0
- data/generators/clearance/templates/test/functional/passwords_controller_test.rb +5 -0
- data/generators/clearance/templates/test/functional/sessions_controller_test.rb +5 -0
- data/generators/clearance/templates/test/functional/users_controller_test.rb +5 -0
- data/generators/clearance/templates/test/unit/clearance_mailer_test.rb +6 -0
- data/generators/clearance/templates/test/unit/user_test.rb +5 -0
- data/lib/clearance.rb +15 -0
- data/lib/clearance/app/controllers/application_controller.rb +84 -0
- data/lib/clearance/app/controllers/confirmations_controller.rb +46 -0
- data/lib/clearance/app/controllers/passwords_controller.rb +67 -0
- data/lib/clearance/app/controllers/sessions_controller.rb +79 -0
- data/lib/clearance/app/controllers/users_controller.rb +47 -0
- data/lib/clearance/app/models/clearance_mailer.rb +33 -0
- data/lib/clearance/app/models/user.rb +86 -0
- data/lib/clearance/test/functional/confirmations_controller_test.rb +85 -0
- data/lib/clearance/test/functional/passwords_controller_test.rb +188 -0
- data/lib/clearance/test/functional/sessions_controller_test.rb +148 -0
- data/lib/clearance/test/functional/users_controller_test.rb +69 -0
- data/lib/clearance/test/test_helper.rb +94 -0
- data/lib/clearance/test/unit/clearance_mailer_test.rb +63 -0
- data/lib/clearance/test/unit/user_test.rb +208 -0
- data/lib/clearance/version.rb +7 -0
- metadata +127 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
module Clearance
|
2
|
+
module Test
|
3
|
+
module Functional
|
4
|
+
module UsersControllerTest
|
5
|
+
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
|
+
public_context do
|
9
|
+
|
10
|
+
context "on GET to /users/new" do
|
11
|
+
setup { get :new }
|
12
|
+
should_respond_with :success
|
13
|
+
should_render_template :new
|
14
|
+
should_not_set_the_flash
|
15
|
+
should_have_form :action => "users_path",
|
16
|
+
:method => :post,
|
17
|
+
:fields => { :email => :text,
|
18
|
+
:password => :password,
|
19
|
+
:password_confirmation => :password }
|
20
|
+
|
21
|
+
context "with params" do
|
22
|
+
setup do
|
23
|
+
@email = 'a@example.com'
|
24
|
+
get :new, :user => {:email => @email}
|
25
|
+
end
|
26
|
+
|
27
|
+
should_assign_to :user
|
28
|
+
should "set the @user's params" do
|
29
|
+
assert_equal @email, assigns(:user).email
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "on POST to /users" do
|
35
|
+
setup do
|
36
|
+
post :create, :user => {
|
37
|
+
:email => Factory.next(:email),
|
38
|
+
:password => 'skerit',
|
39
|
+
:password_confirmation => 'skerit'
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
should_set_the_flash_to /confirm/i
|
44
|
+
should_redirect_to "@controller.send(:url_after_create)"
|
45
|
+
should_assign_to :user
|
46
|
+
should_change 'User.count', :by => 1
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
logged_in_user_context do
|
52
|
+
context "GET to new" do
|
53
|
+
setup { get :new }
|
54
|
+
should_redirect_to 'root_url'
|
55
|
+
end
|
56
|
+
|
57
|
+
context "POST to create" do
|
58
|
+
setup { post :create, :user => {} }
|
59
|
+
should_redirect_to 'root_url'
|
60
|
+
end
|
61
|
+
|
62
|
+
should_filter_params :password
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
module Clearance
|
2
|
+
module Test
|
3
|
+
module TestHelper
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.class_eval do
|
7
|
+
include InstanceMethods
|
8
|
+
extend ClassMethods
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module InstanceMethods
|
13
|
+
def login_as(user = nil)
|
14
|
+
user ||= Factory(:user)
|
15
|
+
@request.session[:user_id] = user.id
|
16
|
+
return user
|
17
|
+
end
|
18
|
+
|
19
|
+
def logout
|
20
|
+
@request.session[:user_id] = nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module ClassMethods
|
25
|
+
def should_deny_access_on(command, opts = {})
|
26
|
+
|
27
|
+
context "on #{command}" do
|
28
|
+
setup { eval command }
|
29
|
+
should_deny_access(opts)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def should_deny_access(opts = {})
|
34
|
+
opts[:redirect] ||= "new_session_path"
|
35
|
+
should_redirect_to opts[:redirect]
|
36
|
+
if opts[:flash]
|
37
|
+
should_set_the_flash_to opts[:flash]
|
38
|
+
else
|
39
|
+
should_not_set_the_flash
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# should_have_form :action => 'admin_users_path',
|
44
|
+
# :method => :get,
|
45
|
+
# :fields => { 'email' => :text }
|
46
|
+
# TODO: http_method should be pulled out
|
47
|
+
def should_have_form(opts)
|
48
|
+
model = self.name.gsub(/ControllerTest$/, '').singularize.downcase
|
49
|
+
model = model[model.rindex('::')+2..model.size] if model.include?('::')
|
50
|
+
http_method, hidden_http_method = form_http_method opts[:method]
|
51
|
+
should "have a #{model} form" do
|
52
|
+
assert_select "form[action=?][method=#{http_method}]", eval(opts[:action]) do
|
53
|
+
if hidden_http_method
|
54
|
+
assert_select "input[type=hidden][name=_method][value=#{hidden_http_method}]"
|
55
|
+
end
|
56
|
+
opts[:fields].each do |attribute, type|
|
57
|
+
attribute = attribute.is_a?(Symbol) ? "#{model}[#{attribute.to_s}]" : attribute
|
58
|
+
assert_select "input[type=#{type.to_s}][name=?]", attribute
|
59
|
+
end
|
60
|
+
assert_select "input[type=submit]"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def form_http_method(http_method)
|
66
|
+
http_method = http_method.nil? ? 'post' : http_method.to_s
|
67
|
+
if http_method == "post" || http_method == "get"
|
68
|
+
return http_method, nil
|
69
|
+
else
|
70
|
+
return "post", http_method
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def logged_in_user_context(&blk)
|
75
|
+
context "A logged in user" do
|
76
|
+
setup do
|
77
|
+
@user = Factory :user
|
78
|
+
login_as @user
|
79
|
+
end
|
80
|
+
merge_block(&blk)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def public_context(&blk)
|
85
|
+
context "The public" do
|
86
|
+
setup { logout }
|
87
|
+
merge_block(&blk)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
module Clearance
|
2
|
+
module Test
|
3
|
+
module Unit
|
4
|
+
module ClearanceMailerTest
|
5
|
+
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
|
+
context "A change password email" do
|
9
|
+
setup do
|
10
|
+
@user = Factory :user
|
11
|
+
@email = ClearanceMailer.create_change_password @user
|
12
|
+
end
|
13
|
+
|
14
|
+
should "set its from address to DO_NOT_REPLY" do
|
15
|
+
assert_equal DO_NOT_REPLY, @email.from[0]
|
16
|
+
end
|
17
|
+
|
18
|
+
should "contain a link to edit the user's password" do
|
19
|
+
host = ActionMailer::Base.default_url_options[:host]
|
20
|
+
regexp = %r{http://#{host}/users/#{@user.id}/password/edit\?email=#{@user.email.gsub("@", "%40")}&password=#{@user.crypted_password}}
|
21
|
+
assert_match regexp, @email.body
|
22
|
+
end
|
23
|
+
|
24
|
+
should "be sent to the user" do
|
25
|
+
assert_equal [@user.email], @email.to
|
26
|
+
end
|
27
|
+
|
28
|
+
should "have a subject of '[PROJECT_NAME] Change your password'" do
|
29
|
+
assert_equal @email.subject, "[#{PROJECT_NAME.humanize}] Change your password"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "A confirmation email" do
|
34
|
+
setup do
|
35
|
+
@user = Factory :user
|
36
|
+
@email = ClearanceMailer.create_confirmation @user
|
37
|
+
end
|
38
|
+
|
39
|
+
should 'set its recipient to the given user' do
|
40
|
+
assert_equal @user.email, @email.to[0]
|
41
|
+
end
|
42
|
+
|
43
|
+
should 'set its subject' do
|
44
|
+
assert_equal "[#{PROJECT_NAME.humanize}] Account confirmation", @email.subject
|
45
|
+
end
|
46
|
+
|
47
|
+
should 'set its from address to DO_NOT_REPLY' do
|
48
|
+
assert_equal DO_NOT_REPLY, @email.from[0]
|
49
|
+
end
|
50
|
+
|
51
|
+
should "contain a link to confirm the user's account" do
|
52
|
+
host = ActionMailer::Base.default_url_options[:host]
|
53
|
+
regexp = %r{http://#{host}/users/#{@user.id}/confirmation/new\?salt=#{@user.salt}}
|
54
|
+
assert_match regexp, @email.body
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,208 @@
|
|
1
|
+
module Clearance
|
2
|
+
module Test
|
3
|
+
module Unit
|
4
|
+
module UserTest
|
5
|
+
|
6
|
+
def self.included(base)
|
7
|
+
base.class_eval do
|
8
|
+
should_require_attributes :email, :password
|
9
|
+
|
10
|
+
should "require password validation on create" do
|
11
|
+
user = Factory.build(:user, :password => 'blah', :password_confirmation => 'boogidy')
|
12
|
+
assert !user.save
|
13
|
+
assert_match(/confirmation/i, user.errors.on(:password))
|
14
|
+
end
|
15
|
+
|
16
|
+
should "create a crypted_password on save" do
|
17
|
+
assert_not_nil Factory(:user, :crypted_password => nil).crypted_password
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'updating a password' do
|
21
|
+
setup do
|
22
|
+
@user = Factory(:user)
|
23
|
+
assert_not_nil @user.crypted_password
|
24
|
+
@crypt = @user.crypted_password
|
25
|
+
assert_not_nil @user.salt
|
26
|
+
@salt = @user.salt
|
27
|
+
@user.password = 'a_new_password'
|
28
|
+
@user.password_confirmation = 'a_new_password'
|
29
|
+
assert @user.save
|
30
|
+
end
|
31
|
+
|
32
|
+
should 'update a crypted_password' do
|
33
|
+
@user.reload
|
34
|
+
assert @user.crypted_password != @crypt
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'A user' do
|
39
|
+
setup do
|
40
|
+
@salt = 'salt'
|
41
|
+
User.any_instance.stubs(:initialize_salt)
|
42
|
+
@user = Factory :user, :salt => @salt
|
43
|
+
@password = @user.password
|
44
|
+
end
|
45
|
+
|
46
|
+
should "require password validation on update" do
|
47
|
+
@user.update_attributes(:password => "blah", :password_confirmation => "boogidy")
|
48
|
+
assert !@user.save
|
49
|
+
assert_match(/confirmation/i, @user.errors.on(:password))
|
50
|
+
end
|
51
|
+
|
52
|
+
should_require_unique_attributes :email
|
53
|
+
|
54
|
+
context 'authenticating a user' do
|
55
|
+
context 'with good credentials' do
|
56
|
+
setup do
|
57
|
+
@result = User.authenticate @user.email, @password
|
58
|
+
end
|
59
|
+
|
60
|
+
should 'return true' do
|
61
|
+
assert @result
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context 'with bad credentials' do
|
66
|
+
setup do
|
67
|
+
@result = User.authenticate @user.email, 'horribly_wrong_password'
|
68
|
+
end
|
69
|
+
|
70
|
+
should 'return false' do
|
71
|
+
assert !@result
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context 'authenticated?' do
|
77
|
+
context 'with good credentials' do
|
78
|
+
setup do
|
79
|
+
@result = @user.authenticated? @password
|
80
|
+
end
|
81
|
+
|
82
|
+
should 'return true' do
|
83
|
+
assert @result
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context 'with bad credentials' do
|
88
|
+
setup do
|
89
|
+
@result = @user.authenticated? 'horribly_wrong_password'
|
90
|
+
end
|
91
|
+
|
92
|
+
should 'return false' do
|
93
|
+
assert !@result
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context 'encrypt' do
|
99
|
+
setup do
|
100
|
+
@crypted = @user.encrypt(@password)
|
101
|
+
@expected = Digest::SHA1.hexdigest("--#{@salt}--#{@password}--")
|
102
|
+
end
|
103
|
+
|
104
|
+
should 'create a Hash using SHA1 encryption' do
|
105
|
+
assert_equal @expected, @crypted
|
106
|
+
assert_not_equal @password, @crypted
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
context 'remember_me!' do
|
111
|
+
setup do
|
112
|
+
assert_nil @user.remember_token
|
113
|
+
assert_nil @user.remember_token_expires_at
|
114
|
+
@user.remember_me!
|
115
|
+
end
|
116
|
+
|
117
|
+
should 'set the remember token and expiration date' do
|
118
|
+
assert_not_nil @user.remember_token
|
119
|
+
assert_not_nil @user.remember_token_expires_at
|
120
|
+
end
|
121
|
+
|
122
|
+
should 'remember_token?' do
|
123
|
+
assert @user.remember_token?
|
124
|
+
end
|
125
|
+
|
126
|
+
context 'forget_me!' do
|
127
|
+
setup do
|
128
|
+
@user.forget_me!
|
129
|
+
end
|
130
|
+
|
131
|
+
should 'unset the remember token and expiration date' do
|
132
|
+
assert_nil @user.remember_token
|
133
|
+
assert_nil @user.remember_token_expires_at
|
134
|
+
end
|
135
|
+
|
136
|
+
should 'not remember_token?' do
|
137
|
+
assert ! @user.remember_token?
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
context 'remember_token?' do
|
143
|
+
context 'when token expires in the future' do
|
144
|
+
setup do
|
145
|
+
@user.update_attribute :remember_token_expires_at, 2.weeks.from_now.utc
|
146
|
+
end
|
147
|
+
|
148
|
+
should 'be true' do
|
149
|
+
assert @user.remember_token?
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
context 'when token expired' do
|
154
|
+
setup do
|
155
|
+
@user.update_attribute :remember_token_expires_at, 2.weeks.ago.utc
|
156
|
+
end
|
157
|
+
|
158
|
+
should 'be false' do
|
159
|
+
assert ! @user.remember_token?
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
context "User.authenticate with a valid email and password" do
|
165
|
+
setup do
|
166
|
+
@found_user = User.authenticate @user.email, @user.password
|
167
|
+
end
|
168
|
+
|
169
|
+
should "find that user" do
|
170
|
+
assert_equal @user, @found_user
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
context "When sent authenticate with an invalid email and password" do
|
175
|
+
setup do
|
176
|
+
@found_user = User.authenticate "not", "valid"
|
177
|
+
end
|
178
|
+
|
179
|
+
should "find nothing" do
|
180
|
+
assert_nil @found_user
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
context "A user" do
|
186
|
+
setup do
|
187
|
+
@user = Factory :user
|
188
|
+
end
|
189
|
+
|
190
|
+
context 'when sent #confirm!' do
|
191
|
+
setup do
|
192
|
+
assert ! @user.confirmed?
|
193
|
+
assert @user.confirm!
|
194
|
+
@user.reload
|
195
|
+
end
|
196
|
+
|
197
|
+
should 'mark the User record as confirmed' do
|
198
|
+
assert @user.confirmed?
|
199
|
+
end
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
end
|
206
|
+
end
|
207
|
+
end
|
208
|
+
end
|
metadata
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mischa-clearance
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- thoughtbot, inc.
|
8
|
+
- Dan Croak
|
9
|
+
- Josh Nichols
|
10
|
+
- Jason Morrison
|
11
|
+
- Mike Burns
|
12
|
+
- Mike Breen
|
13
|
+
- Hashrocket, Inc.
|
14
|
+
- Les Hill
|
15
|
+
- Jon Larkowski
|
16
|
+
- Wes Gibbs
|
17
|
+
autorequire:
|
18
|
+
bindir: bin
|
19
|
+
cert_chain: []
|
20
|
+
|
21
|
+
date: 2008-12-15 00:00:00 -08:00
|
22
|
+
default_executable:
|
23
|
+
dependencies: []
|
24
|
+
|
25
|
+
description: Fork of clearance, not-purely-restful, but with Facebook goodness
|
26
|
+
email: info@hashrocket.com
|
27
|
+
executables: []
|
28
|
+
|
29
|
+
extensions: []
|
30
|
+
|
31
|
+
extra_rdoc_files: []
|
32
|
+
|
33
|
+
files:
|
34
|
+
- LICENSE
|
35
|
+
- Rakefile
|
36
|
+
- README.textile
|
37
|
+
- TODO.textile
|
38
|
+
- generators/clearance
|
39
|
+
- generators/clearance/clearance_generator.rb
|
40
|
+
- generators/clearance/templates
|
41
|
+
- generators/clearance/templates/app
|
42
|
+
- generators/clearance/templates/app/controllers
|
43
|
+
- generators/clearance/templates/app/controllers/application.rb
|
44
|
+
- generators/clearance/templates/app/controllers/confirmations_controller.rb
|
45
|
+
- generators/clearance/templates/app/controllers/passwords_controller.rb
|
46
|
+
- generators/clearance/templates/app/controllers/sessions_controller.rb
|
47
|
+
- generators/clearance/templates/app/controllers/users_controller.rb
|
48
|
+
- generators/clearance/templates/app/models
|
49
|
+
- generators/clearance/templates/app/models/clearance_mailer.rb
|
50
|
+
- generators/clearance/templates/app/models/user.rb
|
51
|
+
- generators/clearance/templates/app/views
|
52
|
+
- generators/clearance/templates/app/views/clearance_mailer
|
53
|
+
- generators/clearance/templates/app/views/clearance_mailer/change_password.html.erb
|
54
|
+
- generators/clearance/templates/app/views/clearance_mailer/confirmation.html.erb
|
55
|
+
- generators/clearance/templates/app/views/confirmations
|
56
|
+
- generators/clearance/templates/app/views/confirmations/new.html.erb
|
57
|
+
- generators/clearance/templates/app/views/passwords
|
58
|
+
- generators/clearance/templates/app/views/passwords/edit.html.erb
|
59
|
+
- generators/clearance/templates/app/views/passwords/new.html.erb
|
60
|
+
- generators/clearance/templates/app/views/sessions
|
61
|
+
- generators/clearance/templates/app/views/sessions/new.html.erb
|
62
|
+
- generators/clearance/templates/app/views/users
|
63
|
+
- generators/clearance/templates/app/views/users/_form.html.erb
|
64
|
+
- generators/clearance/templates/app/views/users/edit.html.erb
|
65
|
+
- generators/clearance/templates/app/views/users/new.html.erb
|
66
|
+
- generators/clearance/templates/test
|
67
|
+
- generators/clearance/templates/test/factories.rb
|
68
|
+
- generators/clearance/templates/test/functional
|
69
|
+
- generators/clearance/templates/test/functional/confirmations_controller_test.rb
|
70
|
+
- generators/clearance/templates/test/functional/passwords_controller_test.rb
|
71
|
+
- generators/clearance/templates/test/functional/sessions_controller_test.rb
|
72
|
+
- generators/clearance/templates/test/functional/users_controller_test.rb
|
73
|
+
- generators/clearance/templates/test/unit
|
74
|
+
- generators/clearance/templates/test/unit/clearance_mailer_test.rb
|
75
|
+
- generators/clearance/templates/test/unit/user_test.rb
|
76
|
+
- generators/clearance/USAGE
|
77
|
+
- lib/clearance
|
78
|
+
- lib/clearance/app
|
79
|
+
- lib/clearance/app/controllers
|
80
|
+
- lib/clearance/app/controllers/application_controller.rb
|
81
|
+
- lib/clearance/app/controllers/confirmations_controller.rb
|
82
|
+
- lib/clearance/app/controllers/passwords_controller.rb
|
83
|
+
- lib/clearance/app/controllers/sessions_controller.rb
|
84
|
+
- lib/clearance/app/controllers/users_controller.rb
|
85
|
+
- lib/clearance/app/models
|
86
|
+
- lib/clearance/app/models/clearance_mailer.rb
|
87
|
+
- lib/clearance/app/models/user.rb
|
88
|
+
- lib/clearance/test
|
89
|
+
- lib/clearance/test/functional
|
90
|
+
- lib/clearance/test/functional/confirmations_controller_test.rb
|
91
|
+
- lib/clearance/test/functional/passwords_controller_test.rb
|
92
|
+
- lib/clearance/test/functional/sessions_controller_test.rb
|
93
|
+
- lib/clearance/test/functional/users_controller_test.rb
|
94
|
+
- lib/clearance/test/test_helper.rb
|
95
|
+
- lib/clearance/test/unit
|
96
|
+
- lib/clearance/test/unit/clearance_mailer_test.rb
|
97
|
+
- lib/clearance/test/unit/user_test.rb
|
98
|
+
- lib/clearance/version.rb
|
99
|
+
- lib/clearance.rb
|
100
|
+
has_rdoc: false
|
101
|
+
homepage: http://github.com/hashrocket/clearance
|
102
|
+
post_install_message:
|
103
|
+
rdoc_options: []
|
104
|
+
|
105
|
+
require_paths:
|
106
|
+
- lib
|
107
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: "0"
|
112
|
+
version:
|
113
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: "0"
|
118
|
+
version:
|
119
|
+
requirements: []
|
120
|
+
|
121
|
+
rubyforge_project:
|
122
|
+
rubygems_version: 1.2.0
|
123
|
+
signing_key:
|
124
|
+
specification_version: 2
|
125
|
+
summary: Fork of clearance
|
126
|
+
test_files: []
|
127
|
+
|