Class: StandaloneValidator
- Inherits:
-
Object
- Object
- StandaloneValidator
show all
- Defined in:
- lib/standalone_validator.rb,
lib/standalone_validator/version.rb,
lib/standalone_validator/violation.rb,
lib/standalone_validator/definitions.rb,
lib/standalone_validator/named_validations.rb,
lib/standalone_validator/validation_result.rb,
lib/standalone_validator/validation_result_builder.rb,
lib/standalone_validator/named_validations/common_rails_options.rb,
lib/standalone_validator/named_validations/validates_presence_of.rb,
lib/standalone_validator/named_validations/validates_numericality_of.rb
Defined Under Namespace
Modules: Definitions, NamedValidations
Classes: ValidationNotFoundException, ValidationResult, ValidationResultBuilder, Violation
Constant Summary
collapse
- VERSION =
"0.1.0"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.create(&block) ⇒ Object
17
18
19
|
# File 'lib/standalone_validator.rb', line 17
def create(&block)
Class.new(StandaloneValidator, &block)
end
|
.register_as(name) ⇒ Object
21
22
23
|
# File 'lib/standalone_validator.rb', line 21
def register_as(name)
NamedValidations.create(name, self)
end
|
.required_fields ⇒ Object
35
36
37
38
39
40
41
42
43
|
# File 'lib/standalone_validator.rb', line 35
def required_fields
return @required_fields if defined?(@required_fields)
if superclass.kind_of?(StandaloneValidator)
@required_fields = superclass.required_fields
else
@required_fields = Hamster.set
end
end
|
.validations ⇒ Object
25
26
27
28
29
30
31
32
33
|
# File 'lib/standalone_validator.rb', line 25
def validations
return @validations if defined?(@validations)
if superclass.kind_of?(StandaloneValidator)
@validations = superclass.validations
else
@validations = Hamster.set
end
end
|
Instance Method Details
#add_errors_to(object) ⇒ Object
78
79
80
81
82
|
# File 'lib/standalone_validator.rb', line 78
def add_errors_to(object)
validation_result = violations_of(object)
validation_result.add_errors_to(object.errors)
validation_result
end
|
#requires_field?(field) ⇒ Boolean
84
85
86
87
88
89
90
91
92
|
# File 'lib/standalone_validator.rb', line 84
def requires_field?(field)
return true if self.class.required_fields.include?(field.to_sym)
validations.any? do |validation|
if validation.respond_to?(:requires_field?)
validation.requires_field?(field)
end
end
end
|
#violations_of(object, appliable_validations = validations) ⇒ Object
Also known as:
call
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/standalone_validator.rb', line 59
def violations_of(object, appliable_validations = validations)
builder = StandaloneValidator::ValidationResultBuilder.new
builder.validated_object = object
appliable_validations.each do |validation|
if validation.respond_to?(:to_proc)
result = instance_exec(object, &validation)
else
result = validation.call(object)
end
builder.merge_result(result)
end
builder.result
end
|