validatable 1.6.1 → 1.6.2
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/macros.rb +23 -0
- data/lib/validatable.rb +1 -0
- data/lib/validations/validates_each.rb +14 -0
- data/rakefile.rb +1 -1
- data/test/functional/validates_each_test.rb +14 -0
- metadata +3 -1
data/lib/macros.rb
CHANGED
@@ -1,5 +1,28 @@
|
|
1
1
|
module Validatable
|
2
2
|
module Macros
|
3
|
+
# call-seq: validates_each(*args)
|
4
|
+
#
|
5
|
+
# Validates that the logic evaluates to true
|
6
|
+
#
|
7
|
+
# class Address
|
8
|
+
# include Validatable
|
9
|
+
# validates_each :zip_code, :logic => lambda { errors.add(:zip_code, "is not valid") if ZipCodeService.allows(zip_code) }
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# The logic option is required.
|
13
|
+
#
|
14
|
+
# Configuration options:
|
15
|
+
#
|
16
|
+
# * message - The message to add to the errors collection when the validation fails
|
17
|
+
# * times - The number of times the validation applies
|
18
|
+
# * level - The level at which the validation should occur
|
19
|
+
# * if - A block that when executed must return true of the validation will not occur
|
20
|
+
# * group - The group that this validation belongs to. A validation can belong to multiple groups
|
21
|
+
# * logic - A block that executes to perform the validation def validates_each(*args)
|
22
|
+
def validates_each(*args)
|
23
|
+
add_validations(args, ValidatesEach)
|
24
|
+
end
|
25
|
+
|
3
26
|
# call-seq: validates_format_of(*args)
|
4
27
|
#
|
5
28
|
# Validates whether the value of the specified attribute is of the
|
data/lib/validatable.rb
CHANGED
@@ -14,6 +14,7 @@ require File.expand_path(File.dirname(__FILE__) + '/validations/validates_confir
|
|
14
14
|
require File.expand_path(File.dirname(__FILE__) + '/validations/validates_length_of')
|
15
15
|
require File.expand_path(File.dirname(__FILE__) + '/validations/validates_true_for')
|
16
16
|
require File.expand_path(File.dirname(__FILE__) + '/validations/validates_numericality_of')
|
17
|
+
require File.expand_path(File.dirname(__FILE__) + '/validations/validates_each')
|
17
18
|
require File.expand_path(File.dirname(__FILE__) + '/validation_assertion')
|
18
19
|
require File.expand_path(File.dirname(__FILE__) + '/validation_assertion_collector')
|
19
20
|
require File.expand_path(File.dirname(__FILE__) + '/validatable_assertions')
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Validatable
|
2
|
+
class ValidatesEach < ValidationBase #:nodoc:
|
3
|
+
required_option :logic
|
4
|
+
|
5
|
+
def valid?(instance)
|
6
|
+
instance.instance_eval(&logic)
|
7
|
+
true # return true so no error is added. should look in the future at doing this different.
|
8
|
+
end
|
9
|
+
|
10
|
+
def message(instance)
|
11
|
+
super || "is invalid"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
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.6.
|
32
|
+
s.version = "1.6.2"
|
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'
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
2
|
+
|
3
|
+
functional_tests do
|
4
|
+
expect :is_set do
|
5
|
+
klass = Class.new do
|
6
|
+
include Validatable
|
7
|
+
attr_accessor :name, :result
|
8
|
+
validates_each :name, :logic => lambda { @result = :is_set }
|
9
|
+
end
|
10
|
+
instance = klass.new
|
11
|
+
instance.valid?
|
12
|
+
instance.result
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: validatable
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.6.
|
6
|
+
version: 1.6.2
|
7
7
|
date: 2007-08-15 00:00:00 -04:00
|
8
8
|
summary: Validatable is a library for adding validations.
|
9
9
|
require_paths:
|
@@ -42,6 +42,7 @@ files:
|
|
42
42
|
- lib/validation_assertion_collector.rb
|
43
43
|
- lib/validations/validates_acceptance_of.rb
|
44
44
|
- lib/validations/validates_confirmation_of.rb
|
45
|
+
- lib/validations/validates_each.rb
|
45
46
|
- lib/validations/validates_format_of.rb
|
46
47
|
- lib/validations/validates_length_of.rb
|
47
48
|
- lib/validations/validates_numericality_of.rb
|
@@ -54,6 +55,7 @@ files:
|
|
54
55
|
- test/functional/validatable_test.rb
|
55
56
|
- test/functional/validates_acceptance_of_test.rb
|
56
57
|
- test/functional/validates_confirmation_of_test.rb
|
58
|
+
- test/functional/validates_each_test.rb
|
57
59
|
- test/functional/validates_format_of_test.rb
|
58
60
|
- test/functional/validates_length_of_test.rb
|
59
61
|
- test/functional/validates_numericality_of_test.rb
|