dust-generators 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/Rakefile +10 -11
  2. data/lib/dust/version.rb +9 -0
  3. data/lib/generators/dust/config/config_generator.rb +1 -1
  4. data/lib/generators/dust/scaffold/scaffold_generator.rb +3 -1
  5. data/lib/generators/dust/scaffold/templates/actions/index.rb +1 -1
  6. data/lib/generators/dust/scaffold/templates/model.rb +12 -0
  7. data/lib/generators/dust/scaffold/templates/views/erb/_form.html.erb +10 -4
  8. data/lib/generators/dust/scaffold/templates/views/erb/_search.html.erb +6 -0
  9. data/lib/generators/dust/scaffold/templates/views/erb/edit.html.erb +2 -12
  10. data/lib/generators/dust/scaffold/templates/views/erb/index.html.erb +21 -26
  11. data/lib/generators/dust/scaffold/templates/views/erb/new.html.erb +1 -3
  12. data/lib/generators/dust/scaffold/templates/views/erb/show.html.erb +20 -18
  13. metadata +6 -40
  14. data/lib/generators/dust/authentication/USAGE +0 -50
  15. data/lib/generators/dust/authentication/authentication_generator.rb +0 -154
  16. data/lib/generators/dust/authentication/templates/authlogic_session.rb +0 -2
  17. data/lib/generators/dust/authentication/templates/controller_authentication.rb +0 -61
  18. data/lib/generators/dust/authentication/templates/fixtures.yml +0 -24
  19. data/lib/generators/dust/authentication/templates/migration.rb +0 -20
  20. data/lib/generators/dust/authentication/templates/sessions_controller.rb +0 -45
  21. data/lib/generators/dust/authentication/templates/sessions_helper.rb +0 -2
  22. data/lib/generators/dust/authentication/templates/tests/rspec/sessions_controller.rb +0 -39
  23. data/lib/generators/dust/authentication/templates/tests/rspec/user.rb +0 -83
  24. data/lib/generators/dust/authentication/templates/tests/rspec/users_controller.rb +0 -56
  25. data/lib/generators/dust/authentication/templates/tests/shoulda/sessions_controller.rb +0 -40
  26. data/lib/generators/dust/authentication/templates/tests/shoulda/user.rb +0 -85
  27. data/lib/generators/dust/authentication/templates/tests/shoulda/users_controller.rb +0 -61
  28. data/lib/generators/dust/authentication/templates/tests/testunit/sessions_controller.rb +0 -36
  29. data/lib/generators/dust/authentication/templates/tests/testunit/user.rb +0 -88
  30. data/lib/generators/dust/authentication/templates/tests/testunit/users_controller.rb +0 -53
  31. data/lib/generators/dust/authentication/templates/user.rb +0 -42
  32. data/lib/generators/dust/authentication/templates/users_controller.rb +0 -34
  33. data/lib/generators/dust/authentication/templates/users_helper.rb +0 -2
  34. data/lib/generators/dust/authentication/templates/views/erb/_form.html.erb +0 -20
  35. data/lib/generators/dust/authentication/templates/views/erb/edit.html.erb +0 -3
  36. data/lib/generators/dust/authentication/templates/views/erb/login.html.erb +0 -30
  37. data/lib/generators/dust/authentication/templates/views/erb/signup.html.erb +0 -5
  38. data/lib/generators/dust/authentication/templates/views/haml/_form.html.haml +0 -20
  39. data/lib/generators/dust/authentication/templates/views/haml/edit.html.haml +0 -3
  40. data/lib/generators/dust/authentication/templates/views/haml/login.html.haml +0 -30
  41. data/lib/generators/dust/authentication/templates/views/haml/signup.html.haml +0 -5
  42. data/lib/generators/dust/layout/USAGE +0 -25
  43. data/lib/generators/dust/layout/layout_generator.rb +0 -29
  44. data/lib/generators/dust/layout/templates/error_messages_helper.rb +0 -23
  45. data/lib/generators/dust/layout/templates/layout.html.erb +0 -19
  46. data/lib/generators/dust/layout/templates/layout.html.haml +0 -21
  47. data/lib/generators/dust/layout/templates/layout_helper.rb +0 -22
  48. data/lib/generators/dust/layout/templates/stylesheet.css +0 -75
  49. data/lib/generators/dust/layout/templates/stylesheet.sass +0 -66
@@ -1,45 +0,0 @@
1
- class <%= session_plural_class_name %>Controller < ApplicationController
2
- <%- if options[:authlogic] -%>
3
- def new
4
- @<%= session_singular_name %> = <%= session_class_name %>.new
5
- end
6
-
7
- def create
8
- @<%= session_singular_name %> = <%= session_class_name %>.new(params[:<%= session_singular_name %>])
9
- if @<%= session_singular_name %>.save
10
- flash[:notice] = "Logged in successfully."
11
- redirect_to_target_or_default("/")
12
- else
13
- render :action => 'new'
14
- end
15
- end
16
-
17
- def destroy
18
- @<%= session_singular_name %> = <%= session_class_name %>.find
19
- @<%= session_singular_name %>.destroy
20
- flash[:notice] = "You have been logged out."
21
- redirect_to "/"
22
- end
23
- <%- else -%>
24
- def new
25
- end
26
-
27
- def create
28
- <%= user_singular_name %> = <%= user_class_name %>.authenticate(params[:login], params[:password])
29
- if <%= user_singular_name %>
30
- session[:<%= user_singular_name %>_id] = <%= user_singular_name %>.id
31
- flash[:notice] = "Logged in successfully."
32
- redirect_to_target_or_default("/")
33
- else
34
- flash.now[:error] = "Invalid login or password."
35
- render :action => 'new'
36
- end
37
- end
38
-
39
- def destroy
40
- session[:<%= user_singular_name %>_id] = nil
41
- flash[:notice] = "You have been logged out."
42
- redirect_to "/"
43
- end
44
- <%- end -%>
45
- end
@@ -1,2 +0,0 @@
1
- module <%= session_plural_class_name %>Helper
2
- end
@@ -1,39 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe <%= session_plural_class_name %>Controller do
4
- fixtures :all
5
- render_views
6
-
7
- it "new action should render new template" do
8
- get :new
9
- response.should render_template(:new)
10
- end
11
-
12
- <%- if options[:authlogic] -%>
13
- it "create action should render new template when authentication is invalid" do
14
- post :create, :<%= session_singular_name %> => { :username => "foo", :password => "badpassword" }
15
- response.should render_template(:new)
16
- <%= session_class_name %>.find.should be_nil
17
- end
18
-
19
- it "create action should redirect when authentication is valid" do
20
- post :create, :<%= session_singular_name %> => { :username => "foo", :password => "secret" }
21
- response.should redirect_to("/")
22
- <%= session_class_name %>.find.<%= user_singular_name %>.should == <%= user_plural_name %>(:foo)
23
- end
24
- <%- else -%>
25
- it "create action should render new template when authentication is invalid" do
26
- <%= user_class_name %>.stubs(:authenticate).returns(nil)
27
- post :create
28
- response.should render_template(:new)
29
- session['<%= user_singular_name %>_id'].should be_nil
30
- end
31
-
32
- it "create action should redirect when authentication is valid" do
33
- <%= user_class_name %>.stubs(:authenticate).returns(<%= user_class_name %>.first)
34
- post :create
35
- response.should redirect_to("/")
36
- session['<%= user_singular_name %>_id'].should == <%= user_class_name %>.first.id
37
- end
38
- <%- end -%>
39
- end
@@ -1,83 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe <%= user_class_name %> do
4
- <%- unless options[:authlogic] -%>
5
- def new_<%= user_singular_name %>(attributes = {})
6
- attributes[:username] ||= 'foo'
7
- attributes[:email] ||= 'foo@example.com'
8
- attributes[:password] ||= 'abc123'
9
- attributes[:password_confirmation] ||= attributes[:password]
10
- <%= user_class_name %>.new(attributes)
11
- end
12
-
13
- before(:each) do
14
- <%= user_class_name %>.delete_all
15
- end
16
-
17
- it "should be valid" do
18
- new_<%= user_singular_name %>.should be_valid
19
- end
20
-
21
- it "should require username" do
22
- new_<%= user_singular_name %>(:username => '').should have(1).error_on(:username)
23
- end
24
-
25
- it "should require password" do
26
- new_<%= user_singular_name %>(:password => '').should have(1).error_on(:password)
27
- end
28
-
29
- it "should require well formed email" do
30
- new_<%= user_singular_name %>(:email => 'foo@bar@example.com').should have(1).error_on(:email)
31
- end
32
-
33
- it "should validate uniqueness of email" do
34
- new_<%= user_singular_name %>(:email => 'bar@example.com').save!
35
- new_<%= user_singular_name %>(:email => 'bar@example.com').should have(1).error_on(:email)
36
- end
37
-
38
- it "should validate uniqueness of username" do
39
- new_<%= user_singular_name %>(:username => 'uniquename').save!
40
- new_<%= user_singular_name %>(:username => 'uniquename').should have(1).error_on(:username)
41
- end
42
-
43
- it "should not allow odd characters in username" do
44
- new_<%= user_singular_name %>(:username => 'odd ^&(@)').should have(1).error_on(:username)
45
- end
46
-
47
- it "should validate password is longer than 3 characters" do
48
- new_<%= user_singular_name %>(:password => 'bad').should have(1).error_on(:password)
49
- end
50
-
51
- it "should require matching password confirmation" do
52
- new_<%= user_singular_name %>(:password_confirmation => 'nonmatching').should have(1).error_on(:password)
53
- end
54
-
55
- it "should generate password hash and salt on create" do
56
- <%= user_singular_name %> = new_<%= user_singular_name %>
57
- <%= user_singular_name %>.save!
58
- <%= user_singular_name %>.password_hash.should_not be_nil
59
- <%= user_singular_name %>.password_salt.should_not be_nil
60
- end
61
-
62
- it "should authenticate by username" do
63
- <%= user_singular_name %> = new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret')
64
- <%= user_singular_name %>.save!
65
- <%= user_class_name %>.authenticate('foobar', 'secret').should == <%= user_singular_name %>
66
- end
67
-
68
- it "should authenticate by email" do
69
- <%= user_singular_name %> = new_<%= user_singular_name %>(:email => 'foo@bar.com', :password => 'secret')
70
- <%= user_singular_name %>.save!
71
- <%= user_class_name %>.authenticate('foo@bar.com', 'secret').should == <%= user_singular_name %>
72
- end
73
-
74
- it "should not authenticate bad username" do
75
- <%= user_class_name %>.authenticate('nonexisting', 'secret').should be_nil
76
- end
77
-
78
- it "should not authenticate bad password" do
79
- new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret').save!
80
- <%= user_class_name %>.authenticate('foobar', 'badpassword').should be_nil
81
- end
82
- <%- end -%>
83
- end
@@ -1,56 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe <%= user_plural_class_name %>Controller do
4
- fixtures :all
5
- render_views
6
-
7
- it "new action should render new template" do
8
- get :new
9
- response.should render_template(:new)
10
- end
11
-
12
- it "create action should render new template when model is invalid" do
13
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(false)
14
- post :create
15
- response.should render_template(:new)
16
- end
17
-
18
- it "create action should redirect when model is valid" do
19
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(true)
20
- post :create
21
- response.should redirect_to("/")
22
- <%- unless options[:authlogic] -%>
23
- session['<%= user_singular_name %>_id'].should == assigns['<%= user_singular_name %>'].id
24
- <%- end -%>
25
- end
26
-
27
- it "edit action should redirect when not logged in" do
28
- get :edit, :id => "ignored"
29
- response.should redirect_to(login_url)
30
- end
31
-
32
- it "edit action should render edit template" do
33
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
34
- get :edit, :id => "ignored"
35
- response.should render_template(:edit)
36
- end
37
-
38
- it "update action should redirect when not logged in" do
39
- put :update, :id => "ignored"
40
- response.should redirect_to(login_url)
41
- end
42
-
43
- it "update action should render edit template when <%= user_singular_name %> is invalid" do
44
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
45
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(false)
46
- put :update, :id => "ignored"
47
- response.should render_template(:edit)
48
- end
49
-
50
- it "update action should redirect when <%= user_singular_name %> is valid" do
51
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
52
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(true)
53
- put :update, :id => "ignored"
54
- response.should redirect_to("/")
55
- end
56
- end
@@ -1,40 +0,0 @@
1
- require 'test_helper'
2
-
3
- class <%= session_plural_class_name %>ControllerTest < ActionController::TestCase
4
- context "new action" do
5
- should "render new template" do
6
- get :new
7
- assert_template 'new'
8
- end
9
- end
10
-
11
- context "create action" do
12
- <%- if options[:authlogic] -%>
13
- should "render new template when authentication is invalid" do
14
- post :create, :<%= session_singular_name %> => { :username => "foo", :password => "badpassword" }
15
- assert_template 'new'
16
- assert_nil <%= session_class_name %>.find
17
- end
18
-
19
- should "redirect when authentication is valid" do
20
- post :create, :<%= session_singular_name %> => { :username => "foo", :password => "secret" }
21
- assert_redirected_to "/"
22
- assert_equal <%= user_plural_name %>(:foo), <%= session_class_name %>.find.<%= user_singular_name %>
23
- end
24
- <%- else -%>
25
- should "render new template when authentication is invalid" do
26
- <%= user_class_name %>.stubs(:authenticate).returns(nil)
27
- post :create
28
- assert_template 'new'
29
- assert_nil session['<%= user_singular_name %>_id']
30
- end
31
-
32
- should "redirect when authentication is valid" do
33
- <%= user_class_name %>.stubs(:authenticate).returns(<%= user_class_name %>.first)
34
- post :create
35
- assert_redirected_to "/"
36
- assert_equal <%= user_class_name %>.first.id, session['<%= user_singular_name %>_id']
37
- end
38
- <%- end -%>
39
- end
40
- end
@@ -1,85 +0,0 @@
1
- require 'test_helper'
2
-
3
- class <%= user_class_name %>Test < ActiveSupport::TestCase
4
- <%- unless options[:authlogic] -%>
5
- def new_<%= user_singular_name %>(attributes = {})
6
- attributes[:username] ||= 'foo'
7
- attributes[:email] ||= 'foo@example.com'
8
- attributes[:password] ||= 'abc123'
9
- attributes[:password_confirmation] ||= attributes[:password]
10
- <%= user_singular_name %> = <%= user_class_name %>.new(attributes)
11
- <%= user_singular_name %>.valid? # run validations
12
- <%= user_singular_name %>
13
- end
14
-
15
- def setup
16
- <%= user_class_name %>.delete_all
17
- end
18
-
19
- should "be valid" do
20
- assert new_<%= user_singular_name %>.valid?
21
- end
22
-
23
- should "require username" do
24
- assert new_<%= user_singular_name %>(:username => '').errors[:username]
25
- end
26
-
27
- should "require password" do
28
- assert new_<%= user_singular_name %>(:password => '').errors[:password]
29
- end
30
-
31
- should "require well formed email" do
32
- assert new_<%= user_singular_name %>(:email => 'foo@bar@example.com').errors[:email]
33
- end
34
-
35
- should "validate uniqueness of email" do
36
- new_<%= user_singular_name %>(:email => 'bar@example.com').save!
37
- assert new_<%= user_singular_name %>(:email => 'bar@example.com').errors[:email]
38
- end
39
-
40
- should "validate uniqueness of username" do
41
- new_<%= user_singular_name %>(:username => 'uniquename').save!
42
- assert new_<%= user_singular_name %>(:username => 'uniquename').errors[:username]
43
- end
44
-
45
- should "not allow odd characters in username" do
46
- assert new_<%= user_singular_name %>(:username => 'odd ^&(@)').errors[:username]
47
- end
48
-
49
- should "validate password is longer than 3 characters" do
50
- assert new_<%= user_singular_name %>(:password => 'bad').errors[:password]
51
- end
52
-
53
- should "require matching password confirmation" do
54
- assert new_<%= user_singular_name %>(:password_confirmation => 'nonmatching').errors[:password]
55
- end
56
-
57
- should "generate password hash and salt on create" do
58
- <%= user_singular_name %> = new_<%= user_singular_name %>
59
- <%= user_singular_name %>.save!
60
- assert <%= user_singular_name %>.password_hash
61
- assert <%= user_singular_name %>.password_salt
62
- end
63
-
64
- should "authenticate by username" do
65
- <%= user_singular_name %> = new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret')
66
- <%= user_singular_name %>.save!
67
- assert_equal <%= user_singular_name %>, <%= user_class_name %>.authenticate('foobar', 'secret')
68
- end
69
-
70
- should "authenticate by email" do
71
- <%= user_singular_name %> = new_<%= user_singular_name %>(:email => 'foo@bar.com', :password => 'secret')
72
- <%= user_singular_name %>.save!
73
- assert_equal <%= user_singular_name %>, <%= user_class_name %>.authenticate('foo@bar.com', 'secret')
74
- end
75
-
76
- should "not authenticate bad username" do
77
- assert_nil <%= user_class_name %>.authenticate('nonexisting', 'secret')
78
- end
79
-
80
- should "not authenticate bad password" do
81
- new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret').save!
82
- assert_nil <%= user_class_name %>.authenticate('foobar', 'badpassword')
83
- end
84
- <%- end -%>
85
- end
@@ -1,61 +0,0 @@
1
- require 'test_helper'
2
-
3
- class <%= user_plural_class_name %>ControllerTest < ActionController::TestCase
4
- context "new action" do
5
- should "render new template" do
6
- get :new
7
- assert_template 'new'
8
- end
9
- end
10
-
11
- context "create action" do
12
- should "render new template when <%= user_singular_name %> is invalid" do
13
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(false)
14
- post :create
15
- assert_template 'new'
16
- end
17
-
18
- should "redirect when <%= user_singular_name %> is valid" do
19
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(true)
20
- post :create
21
- assert_redirected_to "/"
22
- <%- unless options[:authlogic] -%>
23
- assert_equal assigns['<%= user_singular_name %>'].id, session['<%= user_singular_name %>_id']
24
- <%- end -%>
25
- end
26
- end
27
-
28
- context "edit action" do
29
- should "redirect when not logged in" do
30
- get :edit, :id => "ignored"
31
- assert_redirected_to login_url
32
- end
33
-
34
- should "render edit template" do
35
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
36
- get :edit, :id => "ignored"
37
- assert_template 'edit'
38
- end
39
- end
40
-
41
- context "update action" do
42
- should "redirect when not logged in" do
43
- put :update, :id => "ignored"
44
- assert_redirected_to login_url
45
- end
46
-
47
- should "render edit template when <%= user_singular_name %> is invalid" do
48
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
49
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(false)
50
- put :update, :id => "ignored"
51
- assert_template 'edit'
52
- end
53
-
54
- should "redirect when <%= user_singular_name %> is valid" do
55
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
56
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(true)
57
- put :update, :id => "ignored"
58
- assert_redirected_to "/"
59
- end
60
- end
61
- end
@@ -1,36 +0,0 @@
1
- require 'test_helper'
2
-
3
- class <%= session_plural_class_name %>ControllerTest < ActionController::TestCase
4
- def test_new
5
- get :new
6
- assert_template 'new'
7
- end
8
-
9
- <%- if options[:authlogic] -%>
10
- def test_create_invalid
11
- post :create, :<%= session_singular_name %> => { :username => "foo", :password => "badpassword" }
12
- assert_template 'new'
13
- assert_nil <%= session_class_name %>.find
14
- end
15
-
16
- def test_create_valid
17
- post :create, :<%= session_singular_name %> => { :username => "foo", :password => "secret" }
18
- assert_redirected_to "/"
19
- assert_equal <%= user_plural_name %>(:foo), <%= session_class_name %>.find.<%= user_singular_name %>
20
- end
21
- <%- else -%>
22
- def test_create_invalid
23
- <%= user_class_name %>.stubs(:authenticate).returns(nil)
24
- post :create
25
- assert_template 'new'
26
- assert_nil session['<%= user_singular_name %>_id']
27
- end
28
-
29
- def test_create_valid
30
- <%= user_class_name %>.stubs(:authenticate).returns(<%= user_class_name %>.first)
31
- post :create
32
- assert_redirected_to "/"
33
- assert_equal <%= user_class_name %>.first.id, session['<%= user_singular_name %>_id']
34
- end
35
- <%- end -%>
36
- end
@@ -1,88 +0,0 @@
1
- require 'test_helper'
2
-
3
- class <%= user_class_name %>Test < ActiveSupport::TestCase
4
- <%- unless options[:authlogic] -%>
5
- def new_<%= user_singular_name %>(attributes = {})
6
- attributes[:username] ||= 'foo'
7
- attributes[:email] ||= 'foo@example.com'
8
- attributes[:password] ||= 'abc123'
9
- attributes[:password_confirmation] ||= attributes[:password]
10
- <%= user_singular_name %> = <%= user_class_name %>.new(attributes)
11
- <%= user_singular_name %>.valid? # run validations
12
- <%= user_singular_name %>
13
- end
14
-
15
- def setup
16
- <%= user_class_name %>.delete_all
17
- end
18
-
19
- def test_valid
20
- assert new_<%= user_singular_name %>.valid?
21
- end
22
-
23
- def test_require_username
24
- assert new_<%= user_singular_name %>(:username => '').errors[:username]
25
- end
26
-
27
- def test_require_password
28
- assert new_<%= user_singular_name %>(:password => '').errors[:password]
29
- end
30
-
31
- def test_require_well_formed_email
32
- assert new_<%= user_singular_name %>(:email => 'foo@bar@example.com').errors[:email]
33
- end
34
-
35
- def test_validate_uniqueness_of_email
36
- new_<%= user_singular_name %>(:email => 'bar@example.com').save!
37
- assert new_<%= user_singular_name %>(:email => 'bar@example.com').errors[:email]
38
- end
39
-
40
- def test_validate_uniqueness_of_username
41
- new_<%= user_singular_name %>(:username => 'uniquename').save!
42
- assert new_<%= user_singular_name %>(:username => 'uniquename').errors[:username]
43
- end
44
-
45
- def test_validate_odd_characters_in_username
46
- assert new_<%= user_singular_name %>(:username => 'odd ^&(@)').errors[:username]
47
- end
48
-
49
- def test_validate_password_length
50
- assert new_<%= user_singular_name %>(:password => 'bad').errors[:password]
51
- end
52
-
53
- def test_require_matching_password_confirmation
54
- assert new_<%= user_singular_name %>(:password_confirmation => 'nonmatching').errors[:password]
55
- end
56
-
57
- def test_generate_password_hash_and_salt_on_create
58
- <%= user_singular_name %> = new_<%= user_singular_name %>
59
- <%= user_singular_name %>.save!
60
- assert <%= user_singular_name %>.password_hash
61
- assert <%= user_singular_name %>.password_salt
62
- end
63
-
64
- def test_authenticate_by_username
65
- <%= user_class_name %>.delete_all
66
- <%= user_singular_name %> = new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret')
67
- <%= user_singular_name %>.save!
68
- assert_equal <%= user_singular_name %>, <%= user_class_name %>.authenticate('foobar', 'secret')
69
- end
70
-
71
- def test_authenticate_by_email
72
- <%= user_class_name %>.delete_all
73
- <%= user_singular_name %> = new_<%= user_singular_name %>(:email => 'foo@bar.com', :password => 'secret')
74
- <%= user_singular_name %>.save!
75
- assert_equal <%= user_singular_name %>, <%= user_class_name %>.authenticate('foo@bar.com', 'secret')
76
- end
77
-
78
- def test_authenticate_bad_username
79
- assert_nil <%= user_class_name %>.authenticate('nonexisting', 'secret')
80
- end
81
-
82
- def test_authenticate_bad_password
83
- <%= user_class_name %>.delete_all
84
- new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret').save!
85
- assert_nil <%= user_class_name %>.authenticate('foobar', 'badpassword')
86
- end
87
- <%- end -%>
88
- end
@@ -1,53 +0,0 @@
1
- require 'test_helper'
2
-
3
- class <%= user_plural_class_name %>ControllerTest < ActionController::TestCase
4
- def test_new
5
- get :new
6
- assert_template 'new'
7
- end
8
-
9
- def test_create_invalid
10
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(false)
11
- post :create
12
- assert_template 'new'
13
- end
14
-
15
- def test_create_valid
16
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(true)
17
- post :create
18
- assert_redirected_to "/"
19
- <%- unless options[:authlogic] -%>
20
- assert_equal assigns['<%= user_singular_name %>'].id, session['<%= user_singular_name %>_id']
21
- <%- end -%>
22
- end
23
-
24
- def test_edit_without_user
25
- get :edit, :id => "ignored"
26
- assert_redirected_to login_url
27
- end
28
-
29
- def test_edit
30
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
31
- get :edit, :id => "ignored"
32
- assert_template 'edit'
33
- end
34
-
35
- def test_update_without_user
36
- put :update, :id => "ignored"
37
- assert_redirected_to login_url
38
- end
39
-
40
- def test_update_invalid
41
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
42
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(false)
43
- put :update, :id => "ignored"
44
- assert_template 'edit'
45
- end
46
-
47
- def test_update_valid
48
- @controller.stubs(:current_<%= user_singular_name %>).returns(<%= user_class_name %>.first)
49
- <%= user_class_name %>.any_instance.stubs(:valid?).returns(true)
50
- put :update, :id => "ignored"
51
- assert_redirected_to "/"
52
- end
53
- end
@@ -1,42 +0,0 @@
1
- class <%= user_class_name %> < ActiveRecord::Base
2
- <%- if options[:authlogic] -%>
3
- acts_as_authentic
4
- <%- else -%>
5
- # new columns need to be added here to be writable through mass assignment
6
- attr_accessible :username, :email, :password, :password_confirmation
7
-
8
- attr_accessor :password
9
- before_save :prepare_password
10
-
11
- validates_presence_of :username
12
- validates_uniqueness_of :username, :email, :allow_blank => true
13
- validates_format_of :username, :with => /^[-\w\._@]+$/i, :allow_blank => true, :message => "should only contain letters, numbers, or .-_@"
14
- validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
15
- validates_presence_of :password, :on => :create
16
- validates_confirmation_of :password
17
- validates_length_of :password, :minimum => 4, :allow_blank => true
18
-
19
- # login can be either username or email address
20
- def self.authenticate(login, pass)
21
- <%= user_singular_name %> = find_by_username(login) || find_by_email(login)
22
- return <%= user_singular_name %> if <%= user_singular_name %> && <%= user_singular_name %>.matching_password?(pass)
23
- end
24
-
25
- def matching_password?(pass)
26
- self.password_hash == encrypt_password(pass)
27
- end
28
-
29
- private
30
-
31
- def prepare_password
32
- unless password.blank?
33
- self.password_salt = BCrypt::Engine.generate_salt
34
- self.password_hash = encrypt_password(password)
35
- end
36
- end
37
-
38
- def encrypt_password(pass)
39
- BCrypt::Engine.hash_secret(pass, password_salt)
40
- end
41
- <%- end -%>
42
- end
@@ -1,34 +0,0 @@
1
- class <%= user_plural_class_name %>Controller < ApplicationController
2
- before_filter :login_required, :except => [:new, :create]
3
-
4
- def new
5
- @<%= user_singular_name %> = <%= user_class_name %>.new
6
- end
7
-
8
- def create
9
- @<%= user_singular_name %> = <%= user_class_name %>.new(params[:<%= user_singular_name %>])
10
- if @<%= user_singular_name %>.save
11
- <%- unless options[:authlogic] -%>
12
- session[:<%= user_singular_name %>_id] = @<%= user_singular_name %>.id
13
- <%- end -%>
14
- flash[:notice] = "Thank you for signing up! You are now logged in."
15
- redirect_to "/"
16
- else
17
- render :action => 'new'
18
- end
19
- end
20
-
21
- def edit
22
- @<%= user_singular_name %> = current_<%= user_singular_name %>
23
- end
24
-
25
- def update
26
- @<%= user_singular_name %> = current_<%= user_singular_name %>
27
- if @<%= user_singular_name %>.update_attributes(params[:<%= user_singular_name %>])
28
- flash[:notice] = "Your profile has been updated."
29
- redirect_to "/"
30
- else
31
- render :action => 'edit'
32
- end
33
- end
34
- end
@@ -1,2 +0,0 @@
1
- module <%= user_plural_class_name %>Helper
2
- end