validatable 1.5.2 → 1.6.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.
- data/lib/validatable_class_methods.rb +5 -0
- data/lib/validatable_instance_methods.rb +2 -2
- data/rakefile.rb +2 -2
- data/test/functional/validatable_test.rb +300 -278
- data/test/test_helper.rb +1 -0
- metadata +3 -3
@@ -65,12 +65,12 @@ module Validatable
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def validations_for_level_and_group(level, group) #:nodoc:
|
68
|
-
validations_for_level = self.class.
|
68
|
+
validations_for_level = self.class.all_validations.select { |validation| validation.level == level }
|
69
69
|
return validations_for_level.select { |validation| validation.groups.empty? } if group.nil?
|
70
70
|
validations_for_level.select { |validation| validation.groups.include?(group) }
|
71
71
|
end
|
72
72
|
|
73
73
|
def validation_levels #:nodoc:
|
74
|
-
self.class.
|
74
|
+
self.class.all_validations.inject([1]) { |result, validation| result << validation.level }.uniq.sort
|
75
75
|
end
|
76
76
|
end
|
data/rakefile.rb
CHANGED
@@ -29,7 +29,7 @@ Gem::manage_gems
|
|
29
29
|
specification = Gem::Specification.new do |s|
|
30
30
|
s.name = "validatable"
|
31
31
|
s.summary = "Validatable is a library for adding validations."
|
32
|
-
s.version = "1.
|
32
|
+
s.version = "1.6.0"
|
33
33
|
s.author = 'Jay Fields'
|
34
34
|
s.description = "Validatable is a library for adding validations."
|
35
35
|
s.email = 'validatable-developer@rubyforge.org'
|
@@ -38,7 +38,7 @@ specification = Gem::Specification.new do |s|
|
|
38
38
|
|
39
39
|
s.has_rdoc = true
|
40
40
|
s.extra_rdoc_files = ['README']
|
41
|
-
s.rdoc_options << '--title' << '
|
41
|
+
s.rdoc_options << '--title' << 'Validatable' << '--main' << 'README' << '--line-numbers'
|
42
42
|
|
43
43
|
s.autorequire = 'validatable'
|
44
44
|
s.files = FileList['{lib,test}/**/*.rb', '[A-Z]*$', 'rakefile.rb'].to_a
|
@@ -1,299 +1,321 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
validates_presence_of :name, :times => 1
|
11
|
-
validates_presence_of :name, :times => 1
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
expect ArgumentError do
|
16
|
-
Class.new do
|
17
|
-
include Validatable
|
18
|
-
attr_accessor :name
|
19
|
-
validates_presence_of :name, :times => 1, :key => 'anything'
|
20
|
-
validates_presence_of :name, :times => 1, :key => 'anything'
|
21
|
-
end
|
3
|
+
functional_tests do
|
4
|
+
|
5
|
+
expect false do
|
6
|
+
klass = Class.new do
|
7
|
+
include Validatable
|
8
|
+
attr_accessor :name
|
9
|
+
validates_presence_of :name
|
22
10
|
end
|
23
|
-
|
24
|
-
expect "is invalid" do
|
25
|
-
child_class = Class.new do
|
26
|
-
include Validatable
|
27
|
-
attr_accessor :name, :address
|
28
|
-
validates_presence_of :name
|
29
|
-
validates_format_of :address, :with => /.+/
|
30
|
-
end
|
31
|
-
klass = Class.new do
|
32
|
-
include Validatable
|
33
|
-
include_validations_for :child
|
34
|
-
define_method :child do
|
35
|
-
child_class.new
|
36
|
-
end
|
37
|
-
end
|
38
|
-
instance = klass.new
|
39
|
-
instance.valid?
|
40
|
-
instance.errors.on(:address)
|
41
|
-
end
|
42
|
-
|
43
|
-
expect "can't be empty" do
|
44
|
-
child_class = Class.new do
|
45
|
-
include Validatable
|
46
|
-
attr_accessor :name, :address
|
47
|
-
validates_presence_of :name
|
48
|
-
validates_format_of :address, :with => /.+/
|
49
|
-
end
|
50
|
-
klass = Class.new do
|
51
|
-
include Validatable
|
52
|
-
include_validations_for :child
|
53
|
-
define_method :child do
|
54
|
-
child_class.new
|
55
|
-
end
|
56
|
-
end
|
57
|
-
instance = klass.new
|
58
|
-
instance.valid?
|
59
|
-
instance.errors.on(:name)
|
60
|
-
end
|
61
|
-
|
62
|
-
|
63
|
-
test "when child validations have errors, level 2 and higher parent validations are not performed" do
|
64
|
-
child_class = Class.new do
|
65
|
-
include Validatable
|
66
|
-
attr_accessor :name
|
67
|
-
validates_presence_of :name
|
68
|
-
end
|
69
|
-
|
70
|
-
klass = Class.new do
|
71
|
-
include Validatable
|
72
|
-
extend Forwardable
|
73
|
-
def_delegator :child, :name
|
74
|
-
validates_true_for :name, :logic => lambda { false }, :level => 2, :message => "invalid message"
|
75
|
-
include_validations_for :child
|
76
|
-
define_method :child do
|
77
|
-
@child ||= child_class.new
|
78
|
-
end
|
79
|
-
end
|
80
|
-
instance = klass.new
|
81
|
-
instance.valid?
|
82
|
-
assert_equal "can't be empty", instance.errors.on(:name)
|
11
|
+
subclass = Class.new klass do
|
83
12
|
end
|
13
|
+
subclass.new.valid?
|
14
|
+
end
|
84
15
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
16
|
+
expect true do
|
17
|
+
klass = Class.new do
|
18
|
+
include Validatable
|
19
|
+
attr_accessor :name
|
20
|
+
validates_presence_of :name
|
21
|
+
end
|
22
|
+
subclass = Class.new klass do
|
23
|
+
end
|
24
|
+
instance = subclass.new
|
25
|
+
instance.name = 'a name'
|
26
|
+
instance.valid?
|
27
|
+
end
|
91
28
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
29
|
+
expect ArgumentError do
|
30
|
+
Class.new do
|
31
|
+
include Validatable
|
32
|
+
attr_accessor :name
|
33
|
+
validates_presence_of :name, :times => 1
|
34
|
+
validates_presence_of :name, :times => 1
|
35
|
+
end
|
36
|
+
end
|
99
37
|
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
38
|
+
expect ArgumentError do
|
39
|
+
Class.new do
|
40
|
+
include Validatable
|
41
|
+
attr_accessor :name
|
42
|
+
validates_presence_of :name, :times => 1, :key => 'anything'
|
43
|
+
validates_presence_of :name, :times => 1, :key => 'anything'
|
105
44
|
end
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
instance = klass.new
|
121
|
-
instance.valid?
|
122
|
-
instance.errors.on(:namen)
|
123
|
-
end
|
124
|
-
|
125
|
-
expect "can't be empty" do
|
126
|
-
child_class = Class.new do
|
127
|
-
include Validatable
|
128
|
-
attr_accessor :name, :address
|
129
|
-
validates_presence_of :name
|
130
|
-
end
|
131
|
-
klass = Class.new do
|
132
|
-
include Validatable
|
133
|
-
include_validations_for :child, :if => lambda { true }
|
134
|
-
define_method :child do
|
135
|
-
child_class.new
|
136
|
-
end
|
137
|
-
end
|
138
|
-
instance = klass.new
|
139
|
-
instance.valid?
|
140
|
-
instance.errors.on(:name)
|
141
|
-
end
|
142
|
-
|
143
|
-
expect true do
|
144
|
-
child_class = Class.new do
|
145
|
-
include Validatable
|
146
|
-
attr_accessor :name, :address
|
147
|
-
validates_presence_of :name
|
148
|
-
end
|
149
|
-
klass = Class.new do
|
150
|
-
include Validatable
|
151
|
-
include_validations_for :child, :if => lambda { false }
|
152
|
-
define_method :child do
|
153
|
-
child_class.new
|
154
|
-
end
|
155
|
-
end
|
156
|
-
instance = klass.new
|
157
|
-
instance.valid?
|
158
|
-
end
|
159
|
-
|
160
|
-
test "classes only have valid_for_* methods for groups that appear in their validations" do
|
161
|
-
class_with_group_one = Class.new do
|
162
|
-
include Validatable
|
163
|
-
validates_presence_of :name, :groups => :group_one
|
164
|
-
attr_accessor :name
|
165
|
-
end
|
166
|
-
class_with_group_two = Class.new do
|
167
|
-
include Validatable
|
168
|
-
validates_presence_of :name, :groups => :group_two
|
169
|
-
attr_accessor :name
|
170
|
-
end
|
171
|
-
assert_equal false, class_with_group_one.public_instance_methods.include?(:valid_for_group_two?)
|
172
|
-
assert_equal false, class_with_group_two.public_instance_methods.include?(:valid_for_group_one?)
|
173
|
-
end
|
174
|
-
|
175
|
-
test "nonmatching groups are not used as validations" do
|
176
|
-
klass = Class.new do
|
177
|
-
include Validatable
|
178
|
-
validates_presence_of :name, :groups => :group_one
|
179
|
-
validates_presence_of :address, :groups => :group_two
|
180
|
-
attr_accessor :name, :address
|
181
|
-
end
|
182
|
-
instance = klass.new
|
183
|
-
assert_equal nil, instance.errors.on(:name)
|
184
|
-
end
|
185
|
-
|
186
|
-
expect "can't be empty twice changed message" do
|
187
|
-
klass = Class.new do
|
188
|
-
include Validatable
|
189
|
-
validates_presence_of :name
|
190
|
-
attr_accessor :name
|
191
|
-
end
|
192
|
-
|
193
|
-
Validatable::ValidationBase.class_eval do
|
194
|
-
after_validate do |result, instance, attribute|
|
195
|
-
instance.errors.add(attribute, " changed message")
|
196
|
-
end
|
197
|
-
end
|
198
|
-
Validatable::ValidatesPresenceOf.class_eval do
|
199
|
-
after_validate do |result, instance, attribute|
|
200
|
-
instance.errors.add(attribute, " twice")
|
201
|
-
end
|
45
|
+
end
|
46
|
+
|
47
|
+
expect "is invalid" do
|
48
|
+
child_class = Class.new do
|
49
|
+
include Validatable
|
50
|
+
attr_accessor :name, :address
|
51
|
+
validates_presence_of :name
|
52
|
+
validates_format_of :address, :with => /.+/
|
53
|
+
end
|
54
|
+
klass = Class.new do
|
55
|
+
include Validatable
|
56
|
+
include_validations_for :child
|
57
|
+
define_method :child do
|
58
|
+
child_class.new
|
202
59
|
end
|
203
|
-
instance = klass.new
|
204
|
-
instance.valid?
|
205
|
-
Validatable::ValidatesPresenceOf.after_validations.clear
|
206
|
-
Validatable::ValidationBase.after_validations.clear
|
207
|
-
instance.errors.on(:name).join
|
208
60
|
end
|
61
|
+
instance = klass.new
|
62
|
+
instance.valid?
|
63
|
+
instance.errors.on(:address)
|
64
|
+
end
|
209
65
|
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
66
|
+
expect "can't be empty" do
|
67
|
+
child_class = Class.new do
|
68
|
+
include Validatable
|
69
|
+
attr_accessor :name, :address
|
70
|
+
validates_presence_of :name
|
71
|
+
validates_format_of :address, :with => /.+/
|
72
|
+
end
|
73
|
+
klass = Class.new do
|
74
|
+
include Validatable
|
75
|
+
include_validations_for :child
|
76
|
+
define_method :child do
|
77
|
+
child_class.new
|
215
78
|
end
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
79
|
+
end
|
80
|
+
instance = klass.new
|
81
|
+
instance.valid?
|
82
|
+
instance.errors.on(:name)
|
83
|
+
end
|
84
|
+
|
85
|
+
|
86
|
+
test "when child validations have errors, level 2 and higher parent validations are not performed" do
|
87
|
+
child_class = Class.new do
|
88
|
+
include Validatable
|
89
|
+
attr_accessor :name
|
90
|
+
validates_presence_of :name
|
91
|
+
end
|
92
|
+
|
93
|
+
klass = Class.new do
|
94
|
+
include Validatable
|
95
|
+
extend Forwardable
|
96
|
+
def_delegator :child, :name
|
97
|
+
validates_true_for :name, :logic => lambda { false }, :level => 2, :message => "invalid message"
|
98
|
+
include_validations_for :child
|
99
|
+
define_method :child do
|
100
|
+
@child ||= child_class.new
|
225
101
|
end
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
102
|
+
end
|
103
|
+
instance = klass.new
|
104
|
+
instance.valid?
|
105
|
+
assert_equal "can't be empty", instance.errors.on(:name)
|
106
|
+
end
|
107
|
+
|
108
|
+
test "when child validations have errors, level 1 parent validations are still performed" do
|
109
|
+
child_class = Class.new do
|
110
|
+
include Validatable
|
111
|
+
attr_accessor :name
|
112
|
+
validates_presence_of :name
|
113
|
+
end
|
114
|
+
|
115
|
+
klass = Class.new do
|
116
|
+
include Validatable
|
117
|
+
validates_true_for :address, :logic => lambda { false }, :level => 1, :message => "invalid message"
|
118
|
+
include_validations_for :child
|
119
|
+
define_method :child do
|
120
|
+
@child ||= child_class.new
|
236
121
|
end
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
122
|
+
|
123
|
+
end
|
124
|
+
instance = klass.new
|
125
|
+
instance.valid?
|
126
|
+
assert_equal "can't be empty", instance.errors.on(:name)
|
127
|
+
assert_equal "invalid message", instance.errors.on(:address)
|
128
|
+
end
|
129
|
+
|
130
|
+
expect "can't be empty" do
|
131
|
+
child_class = Class.new do
|
132
|
+
include Validatable
|
133
|
+
attr_accessor :name, :address
|
134
|
+
validates_presence_of :name
|
135
|
+
end
|
136
|
+
klass = Class.new do
|
137
|
+
include Validatable
|
138
|
+
include_validations_for :child, :map => {:name => :namen}
|
139
|
+
define_method :child do
|
140
|
+
child_class.new
|
247
141
|
end
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
142
|
+
end
|
143
|
+
instance = klass.new
|
144
|
+
instance.valid?
|
145
|
+
instance.errors.on(:namen)
|
146
|
+
end
|
147
|
+
|
148
|
+
expect "can't be empty" do
|
149
|
+
child_class = Class.new do
|
150
|
+
include Validatable
|
151
|
+
attr_accessor :name, :address
|
152
|
+
validates_presence_of :name
|
153
|
+
end
|
154
|
+
klass = Class.new do
|
155
|
+
include Validatable
|
156
|
+
include_validations_for :child, :if => lambda { true }
|
157
|
+
define_method :child do
|
158
|
+
child_class.new
|
257
159
|
end
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
160
|
+
end
|
161
|
+
instance = klass.new
|
162
|
+
instance.valid?
|
163
|
+
instance.errors.on(:name)
|
164
|
+
end
|
165
|
+
|
166
|
+
expect true do
|
167
|
+
child_class = Class.new do
|
168
|
+
include Validatable
|
169
|
+
attr_accessor :name, :address
|
170
|
+
validates_presence_of :name
|
171
|
+
end
|
172
|
+
klass = Class.new do
|
173
|
+
include Validatable
|
174
|
+
include_validations_for :child, :if => lambda { false }
|
175
|
+
define_method :child do
|
176
|
+
child_class.new
|
268
177
|
end
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
178
|
+
end
|
179
|
+
instance = klass.new
|
180
|
+
instance.valid?
|
181
|
+
end
|
182
|
+
|
183
|
+
test "classes only have valid_for_* methods for groups that appear in their validations" do
|
184
|
+
class_with_group_one = Class.new do
|
185
|
+
include Validatable
|
186
|
+
validates_presence_of :name, :groups => :group_one
|
187
|
+
attr_accessor :name
|
188
|
+
end
|
189
|
+
class_with_group_two = Class.new do
|
190
|
+
include Validatable
|
191
|
+
validates_presence_of :name, :groups => :group_two
|
192
|
+
attr_accessor :name
|
193
|
+
end
|
194
|
+
assert_equal false, class_with_group_one.public_instance_methods.include?(:valid_for_group_two?)
|
195
|
+
assert_equal false, class_with_group_two.public_instance_methods.include?(:valid_for_group_one?)
|
196
|
+
end
|
197
|
+
|
198
|
+
test "nonmatching groups are not used as validations" do
|
199
|
+
klass = Class.new do
|
200
|
+
include Validatable
|
201
|
+
validates_presence_of :name, :groups => :group_one
|
202
|
+
validates_presence_of :address, :groups => :group_two
|
203
|
+
attr_accessor :name, :address
|
204
|
+
end
|
205
|
+
instance = klass.new
|
206
|
+
assert_equal nil, instance.errors.on(:name)
|
207
|
+
end
|
208
|
+
|
209
|
+
expect "can't be empty twice changed message" do
|
210
|
+
klass = Class.new do
|
211
|
+
include Validatable
|
212
|
+
validates_presence_of :name
|
213
|
+
attr_accessor :name
|
214
|
+
end
|
215
|
+
|
216
|
+
Validatable::ValidationBase.class_eval do
|
217
|
+
after_validate do |result, instance, attribute|
|
218
|
+
instance.errors.add(attribute, " changed message")
|
281
219
|
end
|
282
|
-
|
283
|
-
|
284
|
-
instance
|
285
|
-
|
286
|
-
|
287
|
-
expect nil do
|
288
|
-
klass = Class.new do
|
289
|
-
include Validatable
|
290
|
-
validates_presence_of :name, :level => 1, :message => "name message"
|
291
|
-
validates_presence_of :address, :level => 2
|
292
|
-
attr_accessor :name, :address
|
220
|
+
end
|
221
|
+
Validatable::ValidatesPresenceOf.class_eval do
|
222
|
+
after_validate do |result, instance, attribute|
|
223
|
+
instance.errors.add(attribute, " twice")
|
293
224
|
end
|
294
|
-
instance = klass.new
|
295
|
-
instance.valid?
|
296
|
-
instance.errors.on(:address)
|
297
225
|
end
|
226
|
+
instance = klass.new
|
227
|
+
instance.valid?
|
228
|
+
Validatable::ValidatesPresenceOf.after_validations.clear
|
229
|
+
Validatable::ValidationBase.after_validations.clear
|
230
|
+
instance.errors.on(:name).join
|
231
|
+
end
|
232
|
+
|
233
|
+
expect false do
|
234
|
+
klass = Class.new do
|
235
|
+
include Validatable
|
236
|
+
validates_presence_of :name, :groups => :group_one
|
237
|
+
attr_accessor :name
|
238
|
+
end
|
239
|
+
instance = klass.new
|
240
|
+
instance.valid_for_group_one?
|
241
|
+
end
|
242
|
+
|
243
|
+
expect false do
|
244
|
+
klass = Class.new do
|
245
|
+
include Validatable
|
246
|
+
validates_presence_of :name, :groups => [:group_one, :group_two]
|
247
|
+
attr_accessor :name
|
248
|
+
end
|
249
|
+
instance = klass.new
|
250
|
+
instance.valid_for_group_one?
|
251
|
+
end
|
252
|
+
|
253
|
+
expect true do
|
254
|
+
klass = Class.new do
|
255
|
+
include Validatable
|
256
|
+
validates_presence_of :name, :groups => :group_one
|
257
|
+
validates_presence_of :address
|
258
|
+
attr_accessor :name, :address
|
259
|
+
end
|
260
|
+
instance = klass.new
|
261
|
+
instance.address = 'anything'
|
262
|
+
instance.valid?
|
263
|
+
end
|
264
|
+
|
265
|
+
expect true do
|
266
|
+
klass = Class.new do
|
267
|
+
include Validatable
|
268
|
+
validates_presence_of :name, :groups => :group_one
|
269
|
+
attr_accessor :name
|
270
|
+
end
|
271
|
+
instance = klass.new
|
272
|
+
instance.valid?
|
273
|
+
end
|
274
|
+
|
275
|
+
expect true do
|
276
|
+
klass = Class.new do
|
277
|
+
include Validatable
|
278
|
+
validates_presence_of :name, :times => 1
|
279
|
+
attr_accessor :name
|
280
|
+
end
|
281
|
+
instance = klass.new
|
282
|
+
instance.valid?
|
283
|
+
instance.valid?
|
284
|
+
end
|
285
|
+
|
286
|
+
expect false do
|
287
|
+
klass = Class.new do
|
288
|
+
include Validatable
|
289
|
+
validates_presence_of :name, :times => 1
|
290
|
+
attr_accessor :name
|
291
|
+
end
|
292
|
+
instance1 = klass.new
|
293
|
+
instance1.valid?
|
294
|
+
instance2 = klass.new
|
295
|
+
instance2.valid?
|
296
|
+
end
|
297
|
+
|
298
|
+
expect "name message" do
|
299
|
+
klass = Class.new do
|
300
|
+
include Validatable
|
301
|
+
validates_presence_of :name, :level => 1, :message => "name message"
|
302
|
+
validates_presence_of :address, :level => 2
|
303
|
+
attr_accessor :name, :address
|
304
|
+
end
|
305
|
+
instance = klass.new
|
306
|
+
instance.valid?
|
307
|
+
instance.errors.on(:name)
|
308
|
+
end
|
309
|
+
|
310
|
+
expect nil do
|
311
|
+
klass = Class.new do
|
312
|
+
include Validatable
|
313
|
+
validates_presence_of :name, :level => 1, :message => "name message"
|
314
|
+
validates_presence_of :address, :level => 2
|
315
|
+
attr_accessor :name, :address
|
316
|
+
end
|
317
|
+
instance = klass.new
|
318
|
+
instance.valid?
|
319
|
+
instance.errors.on(:address)
|
298
320
|
end
|
299
|
-
end
|
321
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: validatable
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.
|
7
|
-
date: 2007-
|
6
|
+
version: 1.6.0
|
7
|
+
date: 2007-08-14 00:00:00 -04:00
|
8
8
|
summary: Validatable is a library for adding validations.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -77,7 +77,7 @@ test_files:
|
|
77
77
|
- test/all_tests.rb
|
78
78
|
rdoc_options:
|
79
79
|
- --title
|
80
|
-
-
|
80
|
+
- Validatable
|
81
81
|
- --main
|
82
82
|
- README
|
83
83
|
- --line-numbers
|