nifty-generators 0.2.1 → 0.2.2
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/CHANGELOG +8 -0
- data/Rakefile +2 -3
- data/nifty-generators.gemspec +3 -3
- data/rails_generators/nifty_authentication/templates/tests/rspec/user.rb +22 -3
- data/rails_generators/nifty_authentication/templates/tests/shoulda/user.rb +22 -3
- data/rails_generators/nifty_authentication/templates/tests/testunit/user.rb +22 -0
- data/rails_generators/nifty_authentication/templates/user.rb +3 -0
- data/rails_generators/nifty_authentication/templates/views/erb/login.html.erb +1 -1
- data/rails_generators/nifty_authentication/templates/views/haml/login.html.haml +1 -1
- data/rails_generators/nifty_layout/templates/stylesheet.css +5 -4
- data/rails_generators/nifty_layout/templates/stylesheet.sass +9 -8
- data/rails_generators/nifty_scaffold/templates/actions/index.rb +1 -1
- data/test/test_helper.rb +3 -3
- data/test/test_nifty_scaffold_generator.rb +1 -1
- metadata +2 -2
data/CHANGELOG
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
0.2.2 (November 11th, 2008)
|
2
|
+
|
3
|
+
* fixing sessions_path reference in nifty_authentication
|
4
|
+
|
5
|
+
* adding more validations to user model in nifty_authentication
|
6
|
+
|
7
|
+
* cleaning up nifty_layout stylesheet
|
8
|
+
|
1
9
|
0.2.1 (November 10th, 2008)
|
2
10
|
|
3
11
|
* adding missing nifty_authentication files
|
data/Rakefile
CHANGED
@@ -2,14 +2,13 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('nifty-generators', '0.2.
|
5
|
+
Echoe.new('nifty-generators', '0.2.2') do |p|
|
6
6
|
p.project = "niftygenerators"
|
7
|
-
p.summary = "A collection of useful generator scripts for Rails."
|
8
7
|
p.description = "A collection of useful generator scripts for Rails."
|
9
8
|
p.url = "http://github.com/ryanb/nifty-generators"
|
10
9
|
p.author = 'Ryan Bates'
|
11
10
|
p.email = "ryan (at) railscasts (dot) com"
|
12
|
-
p.ignore_pattern = ["script/*"
|
11
|
+
p.ignore_pattern = ["script/*"]
|
13
12
|
p.development_dependencies = []
|
14
13
|
end
|
15
14
|
|
data/nifty-generators.gemspec
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
|
2
|
-
# Gem::Specification for Nifty-generators-0.2.
|
2
|
+
# Gem::Specification for Nifty-generators-0.2.2
|
3
3
|
# Originally generated by Echoe
|
4
4
|
|
5
5
|
--- !ruby/object:Gem::Specification
|
6
6
|
name: nifty-generators
|
7
7
|
version: !ruby/object:Gem::Version
|
8
|
-
version: 0.2.
|
8
|
+
version: 0.2.2
|
9
9
|
platform: ruby
|
10
10
|
authors:
|
11
11
|
- Ryan Bates
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
|
15
|
-
date: 2008-11-
|
15
|
+
date: 2008-11-11 00:00:00 -08:00
|
16
16
|
default_executable:
|
17
17
|
dependencies: []
|
18
18
|
|
@@ -9,6 +9,10 @@ describe <%= user_class_name %> do
|
|
9
9
|
<%= user_class_name %>.new(attributes)
|
10
10
|
end
|
11
11
|
|
12
|
+
before(:each) do
|
13
|
+
<%= user_class_name %>.delete_all
|
14
|
+
end
|
15
|
+
|
12
16
|
it "should be valid" do
|
13
17
|
new_<%= user_singular_name %>.should be_valid
|
14
18
|
end
|
@@ -25,6 +29,24 @@ describe <%= user_class_name %> do
|
|
25
29
|
new_<%= user_singular_name %>(:email => 'foo@bar@example.com').should have(1).error_on(:email)
|
26
30
|
end
|
27
31
|
|
32
|
+
it "should validate uniqueness of email" do
|
33
|
+
new_<%= user_singular_name %>(:email => 'bar@example.com').save!
|
34
|
+
new_<%= user_singular_name %>(:email => 'bar@example.com').should have(1).error_on(:email)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should validate uniqueness of username" do
|
38
|
+
new_<%= user_singular_name %>(:username => 'uniquename').save!
|
39
|
+
new_<%= user_singular_name %>(:username => 'uniquename').should have(1).error_on(:username)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should not allow odd characters in username" do
|
43
|
+
new_<%= user_singular_name %>(:username => 'odd ^&(@)').should have(1).error_on(:username)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should validate password is longer than 3 characters" do
|
47
|
+
new_<%= user_singular_name %>(:password => 'bad').should have(1).error_on(:password)
|
48
|
+
end
|
49
|
+
|
28
50
|
it "should require matching password confirmation" do
|
29
51
|
new_<%= user_singular_name %>(:password_confirmation => 'nonmatching').should have(1).error_on(:password)
|
30
52
|
end
|
@@ -37,14 +59,12 @@ describe <%= user_class_name %> do
|
|
37
59
|
end
|
38
60
|
|
39
61
|
it "should authenticate by username" do
|
40
|
-
<%= user_class_name %>.delete_all
|
41
62
|
<%= user_singular_name %> = new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret')
|
42
63
|
<%= user_singular_name %>.save!
|
43
64
|
<%= user_class_name %>.authenticate('foobar', 'secret').should == <%= user_singular_name %>
|
44
65
|
end
|
45
66
|
|
46
67
|
it "should authenticate by email" do
|
47
|
-
<%= user_class_name %>.delete_all
|
48
68
|
<%= user_singular_name %> = new_<%= user_singular_name %>(:email => 'foo@bar.com', :password => 'secret')
|
49
69
|
<%= user_singular_name %>.save!
|
50
70
|
<%= user_class_name %>.authenticate('foo@bar.com', 'secret').should == <%= user_singular_name %>
|
@@ -55,7 +75,6 @@ describe <%= user_class_name %> do
|
|
55
75
|
end
|
56
76
|
|
57
77
|
it "should not authenticate bad password" do
|
58
|
-
<%= user_class_name %>.delete_all
|
59
78
|
new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret').save!
|
60
79
|
<%= user_class_name %>.authenticate('foobar', 'badpassword').should be_nil
|
61
80
|
end
|
@@ -11,6 +11,10 @@ class <%= user_class_name %>Test < ActiveSupport::TestCase
|
|
11
11
|
<%= user_singular_name %>
|
12
12
|
end
|
13
13
|
|
14
|
+
def setup
|
15
|
+
<%= user_class_name %>.delete_all
|
16
|
+
end
|
17
|
+
|
14
18
|
should "be valid" do
|
15
19
|
assert new_<%= user_singular_name %>.valid?
|
16
20
|
end
|
@@ -27,6 +31,24 @@ class <%= user_class_name %>Test < ActiveSupport::TestCase
|
|
27
31
|
assert new_<%= user_singular_name %>(:email => 'foo@bar@example.com').errors.on(:email)
|
28
32
|
end
|
29
33
|
|
34
|
+
should "validate uniqueness of email" do
|
35
|
+
new_<%= user_singular_name %>(:email => 'bar@example.com').save!
|
36
|
+
assert new_<%= user_singular_name %>(:email => 'bar@example.com').errors.on(:email)
|
37
|
+
end
|
38
|
+
|
39
|
+
should "validate uniqueness of username" do
|
40
|
+
new_<%= user_singular_name %>(:username => 'uniquename').save!
|
41
|
+
assert new_<%= user_singular_name %>(:username => 'uniquename').errors.on(:username)
|
42
|
+
end
|
43
|
+
|
44
|
+
should "not allow odd characters in username" do
|
45
|
+
assert new_<%= user_singular_name %>(:username => 'odd ^&(@)').errors.on(:username)
|
46
|
+
end
|
47
|
+
|
48
|
+
should "validate password is longer than 3 characters" do
|
49
|
+
assert new_<%= user_singular_name %>(:password => 'bad').errors.on(:password)
|
50
|
+
end
|
51
|
+
|
30
52
|
should "require matching password confirmation" do
|
31
53
|
assert new_<%= user_singular_name %>(:password_confirmation => 'nonmatching').errors.on(:password)
|
32
54
|
end
|
@@ -39,14 +61,12 @@ class <%= user_class_name %>Test < ActiveSupport::TestCase
|
|
39
61
|
end
|
40
62
|
|
41
63
|
should "authenticate by username" do
|
42
|
-
<%= user_class_name %>.delete_all
|
43
64
|
<%= user_singular_name %> = new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret')
|
44
65
|
<%= user_singular_name %>.save!
|
45
66
|
assert_equal <%= user_singular_name %>, <%= user_class_name %>.authenticate('foobar', 'secret')
|
46
67
|
end
|
47
68
|
|
48
69
|
should "authenticate by email" do
|
49
|
-
<%= user_class_name %>.delete_all
|
50
70
|
<%= user_singular_name %> = new_<%= user_singular_name %>(:email => 'foo@bar.com', :password => 'secret')
|
51
71
|
<%= user_singular_name %>.save!
|
52
72
|
assert_equal <%= user_singular_name %>, <%= user_class_name %>.authenticate('foo@bar.com', 'secret')
|
@@ -57,7 +77,6 @@ class <%= user_class_name %>Test < ActiveSupport::TestCase
|
|
57
77
|
end
|
58
78
|
|
59
79
|
should "not authenticate bad password" do
|
60
|
-
<%= user_class_name %>.delete_all
|
61
80
|
new_<%= user_singular_name %>(:username => 'foobar', :password => 'secret').save!
|
62
81
|
assert_nil <%= user_class_name %>.authenticate('foobar', 'badpassword')
|
63
82
|
end
|
@@ -11,6 +11,10 @@ class <%= user_class_name %>Test < ActiveSupport::TestCase
|
|
11
11
|
<%= user_singular_name %>
|
12
12
|
end
|
13
13
|
|
14
|
+
def setup
|
15
|
+
<%= user_class_name %>.delete_all
|
16
|
+
end
|
17
|
+
|
14
18
|
def test_valid
|
15
19
|
assert new_<%= user_singular_name %>.valid?
|
16
20
|
end
|
@@ -27,6 +31,24 @@ class <%= user_class_name %>Test < ActiveSupport::TestCase
|
|
27
31
|
assert new_<%= user_singular_name %>(:email => 'foo@bar@example.com').errors.on(:email)
|
28
32
|
end
|
29
33
|
|
34
|
+
def test_validate_uniqueness_of_email
|
35
|
+
new_<%= user_singular_name %>(:email => 'bar@example.com').save!
|
36
|
+
assert new_<%= user_singular_name %>(:email => 'bar@example.com').errors.on(:email)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_validate_uniqueness_of_username
|
40
|
+
new_<%= user_singular_name %>(:username => 'uniquename').save!
|
41
|
+
assert new_<%= user_singular_name %>(:username => 'uniquename').errors.on(:username)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_validate_odd_characters_in_username
|
45
|
+
assert new_<%= user_singular_name %>(:username => 'odd ^&(@)').errors.on(:username)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_validate_password_length
|
49
|
+
assert new_<%= user_singular_name %>(:password => 'bad').errors.on(:password)
|
50
|
+
end
|
51
|
+
|
30
52
|
def test_require_matching_password_confirmation
|
31
53
|
assert new_<%= user_singular_name %>(:password_confirmation => 'nonmatching').errors.on(:password)
|
32
54
|
end
|
@@ -6,9 +6,12 @@ class <%= user_class_name %> < ActiveRecord::Base
|
|
6
6
|
before_create :prepare_password
|
7
7
|
|
8
8
|
validates_presence_of :username
|
9
|
+
validates_uniqueness_of :username, :email, :allow_blank => true
|
10
|
+
validates_format_of :username, :with => /^[-\w\._@]+$/i, :allow_blank => true, :message => "should only contain letters, numbers, or .-_@"
|
9
11
|
validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
|
10
12
|
validates_presence_of :password, :on => :create
|
11
13
|
validates_confirmation_of :password
|
14
|
+
validates_length_of :password, :minimum => 4, :allow_blank => true
|
12
15
|
|
13
16
|
# login can be either username or email address
|
14
17
|
def self.authenticate(login, pass)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<p>Don't have an account? <%%= link_to "Sign up!", signup_path %></p>
|
4
4
|
|
5
|
-
<%% form_tag
|
5
|
+
<%% form_tag <%= sessions_underscore_name %>_path do %>
|
6
6
|
<p>
|
7
7
|
<%%= label_tag :login, "Username or Email Address" %><br />
|
8
8
|
<%%= text_field_tag :login, params[:login] %>
|
@@ -14,7 +14,7 @@ a {
|
|
14
14
|
|
15
15
|
.clear {
|
16
16
|
clear: both;
|
17
|
-
height:
|
17
|
+
height: 0;
|
18
18
|
overflow: hidden;
|
19
19
|
}
|
20
20
|
|
@@ -42,8 +42,6 @@ a {
|
|
42
42
|
border: solid 1px #C66;
|
43
43
|
}
|
44
44
|
|
45
|
-
|
46
|
-
|
47
45
|
.fieldWithErrors {
|
48
46
|
display: inline;
|
49
47
|
}
|
@@ -62,18 +60,21 @@ a {
|
|
62
60
|
font-weight: bold;
|
63
61
|
padding: 5px 5px 5px 15px;
|
64
62
|
font-size: 12px;
|
65
|
-
margin:
|
63
|
+
margin: 0;
|
66
64
|
background-color: #c00;
|
67
65
|
color: #fff;
|
68
66
|
}
|
67
|
+
|
69
68
|
#errorExplanation p {
|
70
69
|
color: #333;
|
71
70
|
margin-bottom: 0;
|
72
71
|
padding: 8px;
|
73
72
|
}
|
73
|
+
|
74
74
|
#errorExplanation ul {
|
75
75
|
margin: 2px 24px;
|
76
76
|
}
|
77
|
+
|
77
78
|
#errorExplanation ul li {
|
78
79
|
font-size: 12px;
|
79
80
|
list-style: disc;
|
@@ -6,9 +6,6 @@ body
|
|
6
6
|
:family Verdana, Helvetica, Arial
|
7
7
|
:size 14px
|
8
8
|
|
9
|
-
ul li
|
10
|
-
:list-style none
|
11
|
-
|
12
9
|
a
|
13
10
|
:color #0000FF
|
14
11
|
img
|
@@ -16,7 +13,7 @@ a
|
|
16
13
|
|
17
14
|
.clear
|
18
15
|
:clear both
|
19
|
-
:height
|
16
|
+
:height 0
|
20
17
|
:overflow hidden
|
21
18
|
|
22
19
|
#container
|
@@ -40,19 +37,23 @@ a
|
|
40
37
|
:background-color #FCC
|
41
38
|
:border solid 1px #C66
|
42
39
|
|
40
|
+
.fieldWithErrors
|
41
|
+
:display inline
|
42
|
+
|
43
43
|
#errorExplanation
|
44
44
|
:width 400px
|
45
45
|
:border 2px solid #CF0000
|
46
|
-
:padding
|
46
|
+
:padding 0
|
47
47
|
:padding-bottom 12px
|
48
48
|
:margin-bottom 20px
|
49
49
|
:background-color #f0f0f0
|
50
50
|
h2
|
51
51
|
:text-align left
|
52
|
-
:font-weight bold
|
53
52
|
:padding 5px 5px 5px 15px
|
54
|
-
:
|
55
|
-
:
|
53
|
+
:margin 0
|
54
|
+
:font
|
55
|
+
:weight bold
|
56
|
+
:size 12px
|
56
57
|
:background-color #c00
|
57
58
|
:color #fff
|
58
59
|
p
|
data/test/test_helper.rb
CHANGED
@@ -96,9 +96,9 @@ module ActiveRecord
|
|
96
96
|
attr_accessor :name, :default, :type, :limit, :null, :sql_type, :precision, :scale
|
97
97
|
|
98
98
|
def initialize(name, default, sql_type = nil)
|
99
|
-
@name=name
|
100
|
-
@default=default
|
101
|
-
@type
|
99
|
+
@name = name
|
100
|
+
@default = default
|
101
|
+
@type = @sql_type = sql_type
|
102
102
|
end
|
103
103
|
|
104
104
|
def human_name
|
@@ -100,7 +100,7 @@ class TestNiftyScaffoldGenerator < Test::Unit::TestCase
|
|
100
100
|
should "generate controller with index action" do
|
101
101
|
assert_generated_file "app/controllers/line_items_controller.rb" do |body|
|
102
102
|
assert_match "def index", body
|
103
|
-
assert_match "@line_items = LineItem.
|
103
|
+
assert_match "@line_items = LineItem.all", body
|
104
104
|
assert_no_match(/ def index/, body)
|
105
105
|
end
|
106
106
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nifty-generators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Bates
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-11-
|
12
|
+
date: 2008-11-11 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|