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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2583ea101c23e66054064daf70405c9e8bbe80b4
4
- data.tar.gz: 9e4ebdd5d68301bed485ece166c780d4832abde1
3
+ metadata.gz: e86b6d7660600681b8cbb2e6a6b455af623a7261
4
+ data.tar.gz: f410fa4e36c7eef04499379ab9c510e9983aa728
5
5
  SHA512:
6
- metadata.gz: 5fb96bbf4b99291493e082261466acf36a426e015d71f1a57c7266e8e0e46a028c6daae2ed22c8fc19ca3668db41a6dc93e64e25228e41642136ef5d9ec50ea9
7
- data.tar.gz: 9389c45e7951998fab11199c3b56cb1f0535db67fb3addd5737d3303a5966b074a61e1dfd75980c3445b87b4e4fd63e482c5b2cc54a76c4f622f926d22c8eab8
6
+ metadata.gz: 692bb3f3c1124b91885f30284feab656719e0168425b0b1230074c709ed4de9e6ec8d38c6e68e1fb373fdedb29b9e0b82ee392074da793d708f084e4f82f9d25
7
+ data.tar.gz: 40940682c4597aa2c7e875eece6c1a0a9645a047f34204236dc857c528dff40ba4ea4e8078184cb26d15edd634c23973659b1fd6561e21e37db23daf24af9861
@@ -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
- true
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 validate_all
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
- assert m.valid?
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 :attr1
65
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
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
- assert m.valid?
165
- m.attr2 = 'a'
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: optional_validations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Brykov