super_list 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +9 -5
- data/VERSION +1 -1
- data/lib/super_list.rb +14 -2
- data/test/super_list_test.rb +11 -3
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -10,11 +10,15 @@
|
|
10
10
|
super_list :gender2, 'Gender', :use_i18n => true
|
11
11
|
end
|
12
12
|
|
13
|
-
User.new(:gender => 'NF').valid?
|
14
|
-
User.new(:gender => 'M').valid?
|
15
|
-
User.new(:gender => 'F').gender.to_s
|
16
|
-
User.new(:gender => 'F').gender.to_s(:amos)
|
17
|
-
User.new(:gender => 'F').original_gender
|
13
|
+
User.new(:gender => 'NF').valid? => false
|
14
|
+
User.new(:gender => 'M').valid? => true
|
15
|
+
User.new(:gender => 'F').gender.to_s => 'Female'
|
16
|
+
User.new(:gender => 'F').gender.to_s(:amos) => 'M2'
|
17
|
+
User.new(:gender => 'F').original_gender => 'F'
|
18
|
+
|
19
|
+
User.new(:gender => 'Man').valid? => true
|
20
|
+
User.new(:gender => 'Man').original_gender => 'M'
|
21
|
+
User.new(:gender => 'Man').gender.to_s(:amos) => 'M1'
|
18
22
|
|
19
23
|
user = User.new(:gender => 'F', :gender2 => 'M')
|
20
24
|
user.gender2.to_s => "translation missing: en.Gender.Man"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.3.0
|
data/lib/super_list.rb
CHANGED
@@ -79,8 +79,20 @@ module SuperListActiveRecord
|
|
79
79
|
data = SuperList[data]
|
80
80
|
options = data.options.merge(options)
|
81
81
|
|
82
|
-
|
83
|
-
|
82
|
+
before_validation do
|
83
|
+
value = attributes[column.to_s]
|
84
|
+
keys = data.keys
|
85
|
+
|
86
|
+
if !keys.include?(value)
|
87
|
+
index = data.values.find_index(value)
|
88
|
+
|
89
|
+
if index
|
90
|
+
self.send("#{column}=", keys[index])
|
91
|
+
elsif !options[:no_validation]
|
92
|
+
self.errors.add(column, I18n.t('errors.messages.inclusion'))
|
93
|
+
return false
|
94
|
+
end
|
95
|
+
end
|
84
96
|
end
|
85
97
|
|
86
98
|
define_method "#{column}" do |*opt|
|
data/test/super_list_test.rb
CHANGED
@@ -17,14 +17,22 @@ class SuperListTest < ActiveSupport::TestCase
|
|
17
17
|
test "only valid when included" do
|
18
18
|
## gender allow_blank => true
|
19
19
|
assert Factory.build(:user).valid?
|
20
|
-
assert
|
21
|
-
assert
|
20
|
+
assert Factory.build(:user, :gender => 'A').invalid?
|
21
|
+
assert Factory.build(:user, :gender => 'MF').invalid?
|
22
22
|
assert Factory.build(:user, :gender => 'M').valid?
|
23
23
|
assert Factory.build(:user, :gender => 'F').valid?
|
24
24
|
|
25
25
|
## gender1 allow_blank => false
|
26
26
|
assert Factory.build(:user, :gender1 => 'M').valid?
|
27
|
-
assert
|
27
|
+
assert Factory.build(:user, :gender1 => '').invalid?
|
28
|
+
end
|
29
|
+
|
30
|
+
test "set value" do
|
31
|
+
user = Factory.build(:user, :gender => 'Man')
|
32
|
+
assert user.valid?
|
33
|
+
assert_equal user.gender.to_s(:amos), 'M1'
|
34
|
+
user = Factory.build(:user, :gender => 'NoValue')
|
35
|
+
assert user.invalid?
|
28
36
|
end
|
29
37
|
|
30
38
|
test "no validations for gender2" do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: super_list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 1.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jinzhu
|