optional_validations 0.0.2 → 0.1.0
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.
- checksums.yaml +4 -4
- data/lib/optional_validations.rb +5 -7
- data/test/test_optional_validations.rb +65 -45
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e86b6d7660600681b8cbb2e6a6b455af623a7261
|
4
|
+
data.tar.gz: f410fa4e36c7eef04499379ab9c510e9983aa728
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 692bb3f3c1124b91885f30284feab656719e0168425b0b1230074c709ed4de9e6ec8d38c6e68e1fb373fdedb29b9e0b82ee392074da793d708f084e4f82f9d25
|
7
|
+
data.tar.gz: 40940682c4597aa2c7e875eece6c1a0a9645a047f34204236dc857c528dff40ba4ea4e8078184cb26d15edd634c23973659b1fd6561e21e37db23daf24af9861
|
data/lib/optional_validations.rb
CHANGED
@@ -29,20 +29,18 @@ module ActiveModel
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def validate_only(*fields)
|
32
|
+
def validate_only(*fields, &block)
|
33
33
|
@__validate_except = nil
|
34
34
|
@__validate_only = fields.map &:to_sym
|
35
|
-
|
36
|
-
end
|
37
|
-
|
38
|
-
def validate_except(*fields)
|
35
|
+
yield
|
39
36
|
@__validate_only = nil
|
40
|
-
@__validate_except = fields.map &:to_sym
|
41
37
|
true
|
42
38
|
end
|
43
39
|
|
44
|
-
def
|
40
|
+
def validate_except(*fields, &block)
|
45
41
|
@__validate_only = nil
|
42
|
+
@__validate_except = fields.map &:to_sym
|
43
|
+
yield
|
46
44
|
@__validate_except = nil
|
47
45
|
true
|
48
46
|
end
|
@@ -44,11 +44,16 @@ class OptionalValidationsTest < Minitest::Test
|
|
44
44
|
validates_presence_of :attr1
|
45
45
|
end
|
46
46
|
m = model.new
|
47
|
+
assert !m.valid?
|
47
48
|
|
48
|
-
m.validate_only :attr2
|
49
|
-
|
49
|
+
m.validate_only :attr2 do
|
50
|
+
assert m.valid?
|
51
|
+
end
|
52
|
+
assert !m.valid?
|
50
53
|
|
51
|
-
m.validate_only :attr1
|
54
|
+
m.validate_only :attr1 do
|
55
|
+
assert !m.valid?
|
56
|
+
end
|
52
57
|
assert !m.valid?
|
53
58
|
end
|
54
59
|
|
@@ -57,27 +62,16 @@ class OptionalValidationsTest < Minitest::Test
|
|
57
62
|
validates_presence_of :attr1
|
58
63
|
end
|
59
64
|
m = model.new
|
60
|
-
|
61
|
-
m.validate_except :attr2
|
62
65
|
assert !m.valid?
|
63
66
|
|
64
|
-
m.validate_except :
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_basic_validate_all
|
69
|
-
model = Class.new(ModelBase) do
|
70
|
-
validates_presence_of :attr1
|
67
|
+
m.validate_except :attr2 do
|
68
|
+
assert !m.valid?
|
71
69
|
end
|
72
|
-
m = model.new
|
73
|
-
|
74
|
-
m.validate_except :attr2
|
75
70
|
assert !m.valid?
|
76
71
|
|
77
|
-
m.validate_except :attr1
|
78
|
-
|
79
|
-
|
80
|
-
m.validate_all
|
72
|
+
m.validate_except :attr1 do
|
73
|
+
assert m.valid?
|
74
|
+
end
|
81
75
|
assert !m.valid?
|
82
76
|
end
|
83
77
|
|
@@ -87,24 +81,37 @@ class OptionalValidationsTest < Minitest::Test
|
|
87
81
|
validates_presence_of :attr1, :attr2
|
88
82
|
end
|
89
83
|
m = model.new
|
84
|
+
assert !m.valid?
|
90
85
|
|
91
|
-
m.validate_only :attr1
|
86
|
+
m.validate_only :attr1 do
|
87
|
+
assert !m.valid?
|
88
|
+
end
|
92
89
|
assert !m.valid?
|
93
90
|
|
94
|
-
m.validate_only :attr2
|
91
|
+
m.validate_only :attr2 do
|
92
|
+
assert !m.valid?
|
93
|
+
end
|
95
94
|
assert !m.valid?
|
96
95
|
|
97
|
-
m.validate_except :attr1, :attr2
|
98
|
-
|
96
|
+
m.validate_except :attr1, :attr2 do
|
97
|
+
assert m.valid?
|
98
|
+
end
|
99
|
+
assert !m.valid?
|
99
100
|
|
100
|
-
m.validate_only :attr3
|
101
|
-
|
101
|
+
m.validate_only :attr3 do
|
102
|
+
assert m.valid?
|
103
|
+
end
|
104
|
+
assert !m.valid?
|
102
105
|
|
103
106
|
m.attr1 = 1
|
104
|
-
m.validate_only :attr1
|
105
|
-
|
107
|
+
m.validate_only :attr1 do
|
108
|
+
assert m.valid?
|
109
|
+
end
|
110
|
+
assert !m.valid?
|
106
111
|
|
107
|
-
m.validate_only :attr2
|
112
|
+
m.validate_only :attr2 do
|
113
|
+
assert !m.valid?
|
114
|
+
end
|
108
115
|
assert !m.valid?
|
109
116
|
end
|
110
117
|
|
@@ -115,14 +122,20 @@ class OptionalValidationsTest < Minitest::Test
|
|
115
122
|
m = model.new
|
116
123
|
assert !m.valid?
|
117
124
|
|
118
|
-
m.validate_except :attr1, :attr2
|
119
|
-
|
125
|
+
m.validate_except :attr1, :attr2 do
|
126
|
+
assert m.valid?
|
127
|
+
end
|
128
|
+
assert !m.valid?
|
120
129
|
|
121
130
|
m.attr1 = 1
|
122
|
-
m.validate_only :attr1
|
123
|
-
|
131
|
+
m.validate_only :attr1 do
|
132
|
+
assert m.valid?
|
133
|
+
end
|
134
|
+
assert !m.valid?
|
124
135
|
|
125
|
-
m.validate_only :attr2
|
136
|
+
m.validate_only :attr2 do
|
137
|
+
assert !m.valid?
|
138
|
+
end
|
126
139
|
assert !m.valid?
|
127
140
|
end
|
128
141
|
|
@@ -133,14 +146,20 @@ class OptionalValidationsTest < Minitest::Test
|
|
133
146
|
m = model.new
|
134
147
|
assert !m.valid?
|
135
148
|
|
136
|
-
m.validate_except :attr1, :attr2
|
137
|
-
|
149
|
+
m.validate_except :attr1, :attr2 do
|
150
|
+
assert m.valid?
|
151
|
+
end
|
152
|
+
assert !m.valid?
|
138
153
|
|
139
154
|
m.attr1 = 1
|
140
|
-
m.validate_only :attr1
|
141
|
-
|
155
|
+
m.validate_only :attr1 do
|
156
|
+
assert m.valid?
|
157
|
+
end
|
158
|
+
assert !m.valid?
|
142
159
|
|
143
|
-
m.validate_only :attr2
|
160
|
+
m.validate_only :attr2 do
|
161
|
+
assert !m.valid?
|
162
|
+
end
|
144
163
|
assert !m.valid?
|
145
164
|
end
|
146
165
|
|
@@ -154,15 +173,16 @@ class OptionalValidationsTest < Minitest::Test
|
|
154
173
|
|
155
174
|
m.attr1 = 'a'
|
156
175
|
m.attr2 = 1
|
157
|
-
m.validate_only :attr1, :attr2
|
158
|
-
|
159
|
-
|
160
|
-
m.validate_all
|
176
|
+
m.validate_only :attr1, :attr2 do
|
177
|
+
assert m.valid?
|
178
|
+
end
|
161
179
|
assert !m.valid?
|
162
180
|
|
163
|
-
m.validate_only :attr2
|
164
|
-
|
165
|
-
|
181
|
+
m.validate_only :attr2 do
|
182
|
+
assert m.valid?
|
183
|
+
m.attr2 = 'a'
|
184
|
+
assert !m.valid?
|
185
|
+
end
|
166
186
|
assert !m.valid?
|
167
187
|
|
168
188
|
end
|