acts_as_human 2.0.2 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +1 -1
- data/lib/acts_as_human/instance_methods.rb +9 -1
- data/test/acts_as_human_test.rb +34 -15
- data/test/schema.rb +0 -1
- data/test/test_helper.rb +20 -8
- metadata +4 -4
data/MIT-LICENSE
CHANGED
@@ -15,13 +15,21 @@ module ActsAs
|
|
15
15
|
self.first_name = names_array.first
|
16
16
|
return if names_array.size < 2
|
17
17
|
|
18
|
-
self.last_name = names_array
|
18
|
+
self.last_name = get_last_name(names_array)
|
19
19
|
|
20
20
|
assign_middle_names(names_array)
|
21
21
|
end
|
22
22
|
|
23
23
|
private
|
24
24
|
|
25
|
+
def get_last_name(names_array)
|
26
|
+
if names_array.size > 2 and names_array[-2].eql? 'Mc'
|
27
|
+
surname = names_array.pop
|
28
|
+
names_array << "#{names_array.pop} #{surname}"
|
29
|
+
end
|
30
|
+
names_array.last
|
31
|
+
end
|
32
|
+
|
25
33
|
def assign_middle_names(names_array)
|
26
34
|
if names_array.size > 2
|
27
35
|
self.middle_names = get_middle_names(names_array)
|
data/test/acts_as_human_test.rb
CHANGED
@@ -10,7 +10,7 @@ class ActsAsHumanTest < ActiveSupport::TestCase
|
|
10
10
|
acts_as_human :require_last_name => false
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
test "should require a first name" do
|
14
14
|
user = create_user
|
15
15
|
user.first_name = ''
|
16
16
|
|
@@ -18,26 +18,26 @@ class ActsAsHumanTest < ActiveSupport::TestCase
|
|
18
18
|
assert_equal 'first name is required', user.errors[:first_name]
|
19
19
|
end
|
20
20
|
|
21
|
-
|
21
|
+
test "should have a first name that is less than 40 characters" do
|
22
22
|
user = User.new(:first_name => 'aaaaabbbbbcccccdddddeeeeefffffggggghhhhhi')
|
23
23
|
|
24
24
|
deny user.valid?
|
25
25
|
assert_equal 'first name is too long (max 40 characters)', user.errors[:first_name]
|
26
26
|
end
|
27
27
|
|
28
|
-
|
28
|
+
test "should require a last name" do
|
29
29
|
user = User.new(:first_name => 'Brent')
|
30
30
|
|
31
31
|
deny user.valid?
|
32
32
|
assert_equal 'last name is required', user.errors[:last_name]
|
33
33
|
end
|
34
34
|
|
35
|
-
|
35
|
+
test "should not require a last name if it is not required" do
|
36
36
|
someone_else = Customer.new(:first_name => 'Brent')
|
37
37
|
assert someone_else.valid?
|
38
38
|
end
|
39
39
|
|
40
|
-
|
40
|
+
test "should have a last name that is less than 40 characters" do
|
41
41
|
user = create_user
|
42
42
|
user.last_name = 'aaaaabbbbbcccccdddddeeeeefffffggggghhhhhi'
|
43
43
|
|
@@ -45,31 +45,35 @@ class ActsAsHumanTest < ActiveSupport::TestCase
|
|
45
45
|
assert_equal 'last name is too long (max 40 characters)', user.errors[:last_name]
|
46
46
|
end
|
47
47
|
|
48
|
-
|
48
|
+
test "should have a last name when assigned through full name" do
|
49
49
|
user = User.new(:full_name => 'Brent')
|
50
50
|
|
51
51
|
deny user.valid?
|
52
52
|
assert_equal 'last name is required', user.errors[:last_name]
|
53
53
|
end
|
54
54
|
|
55
|
-
|
55
|
+
test "should have a full name composed of first and last names" do
|
56
56
|
user = User.new(:first_name => 'Brent', :last_name => 'Greeff')
|
57
57
|
assert_equal 'Brent Greeff', user.full_name
|
58
58
|
end
|
59
59
|
|
60
|
-
|
61
|
-
user = User.new(
|
60
|
+
test "should have a full name composed of first middle and last names" do
|
61
|
+
user = User.new(
|
62
|
+
:first_name => 'Brent',
|
63
|
+
:middle_names => 'Middle Names',
|
64
|
+
:last_name => 'Greeff'
|
65
|
+
)
|
62
66
|
assert_equal 'Brent Middle Names Greeff', user.full_name
|
63
67
|
end
|
64
68
|
|
65
|
-
|
69
|
+
test "should assign first and last name when assigning to full name" do
|
66
70
|
user = User.new(:full_name => 'Brent Greeff')
|
67
71
|
|
68
72
|
assert_equal 'Brent', user.first_name
|
69
73
|
assert_equal 'Greeff', user.last_name
|
70
74
|
end
|
71
75
|
|
72
|
-
|
76
|
+
test "should assign first last and middle names when assigning to full name" do
|
73
77
|
user = User.new(:full_name => 'Brent Middle Names Greeff')
|
74
78
|
|
75
79
|
assert_equal 'Brent', user.first_name
|
@@ -77,7 +81,7 @@ class ActsAsHumanTest < ActiveSupport::TestCase
|
|
77
81
|
assert_equal 'Greeff', user.last_name
|
78
82
|
end
|
79
83
|
|
80
|
-
|
84
|
+
test "should have middle names that are less than 40 characters" do
|
81
85
|
user = create_user
|
82
86
|
user.middle_names = 'aaaaabbbbbcccccdddddeeeeefffffggggghhhhhi'
|
83
87
|
|
@@ -85,12 +89,12 @@ class ActsAsHumanTest < ActiveSupport::TestCase
|
|
85
89
|
assert_equal 'middle names are too long (max 40 characters)', user.errors[:middle_names]
|
86
90
|
end
|
87
91
|
|
88
|
-
|
92
|
+
test "should have an empty full name when user is new" do
|
89
93
|
user = User.new
|
90
94
|
assert_equal '', user.full_name
|
91
95
|
end
|
92
96
|
|
93
|
-
|
97
|
+
test "should not allow non name like characters" do
|
94
98
|
user = User.new(:full_name => "<Brent> Middle >< Names Gre&eff")
|
95
99
|
|
96
100
|
deny user.valid?
|
@@ -99,6 +103,22 @@ class ActsAsHumanTest < ActiveSupport::TestCase
|
|
99
103
|
assert_equal 'some characters in your name are not allowed', user.errors[:middle_names]
|
100
104
|
end
|
101
105
|
|
106
|
+
test "should split up scottish names correctly" do
|
107
|
+
user = User.new(:full_name => "Ewan Mc Greggor")
|
108
|
+
|
109
|
+
assert_equal 'Ewan', user.first_name
|
110
|
+
assert_equal 'Mc Greggor', user.last_name
|
111
|
+
assert_nil user.middle_names
|
112
|
+
end
|
113
|
+
|
114
|
+
test "should split up scottish names with middle names correctly" do
|
115
|
+
user = User.new(:full_name => "Jade Frances Roseanne Mc Cracken")
|
116
|
+
|
117
|
+
assert_equal 'Jade', user.first_name
|
118
|
+
assert_equal 'Mc Cracken', user.last_name
|
119
|
+
assert_equal 'Frances Roseanne', user.middle_names
|
120
|
+
end
|
121
|
+
|
102
122
|
private
|
103
123
|
|
104
124
|
def create_user(options={})
|
@@ -122,5 +142,4 @@ class ActsAsHumanTest < ActiveSupport::TestCase
|
|
122
142
|
def deny(expected_to_be_false, message = '')
|
123
143
|
assert ! expected_to_be_false, message
|
124
144
|
end
|
125
|
-
|
126
145
|
end
|
data/test/schema.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -3,15 +3,27 @@ require 'active_support'
|
|
3
3
|
require 'active_support/test_case'
|
4
4
|
require 'test/unit'
|
5
5
|
|
6
|
-
|
7
|
-
ENV['RAILS_ROOT'] ||= File.dirname(__FILE__) + '/../../../..'
|
6
|
+
require 'active_record'
|
8
7
|
|
9
|
-
|
8
|
+
CurrentDir = File.expand_path(File.dirname(__FILE__))
|
10
9
|
|
11
|
-
|
12
|
-
|
13
|
-
ActiveRecord::Base.establish_connection(config['test'])
|
10
|
+
# log_path = File.join(CurrentDir, "debug.log")
|
11
|
+
# ActiveRecord::Base.logger = Logger.new(log_path)
|
14
12
|
|
15
|
-
|
13
|
+
def load_db_config
|
14
|
+
database_yml = File.join(CurrentDir, 'database.yml')
|
15
|
+
config = YAML::load(IO.read(database_yml))
|
16
|
+
config['test']
|
17
|
+
end
|
16
18
|
|
17
|
-
|
19
|
+
ActiveRecord::Base.establish_connection(load_db_config)
|
20
|
+
load(File.join(CurrentDir, "schema.rb"))
|
21
|
+
|
22
|
+
$: << (File.join(CurrentDir, "..", "lib"))
|
23
|
+
|
24
|
+
begin
|
25
|
+
require 'redgreen' unless ENV['TM_MODE']
|
26
|
+
rescue LoadError
|
27
|
+
end
|
28
|
+
|
29
|
+
require 'acts_as_human.rb'
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_human
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 2.0.
|
9
|
+
- 3
|
10
|
+
version: 2.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Brent Greeff
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-11-15 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|