class StandaloneValidator
Constants
- VERSION
Public Class Methods
create(&block)
click to toggle source
# File lib/standalone_validator.rb, line 17 def create(&block) Class.new(StandaloneValidator, &block) end
register_as(name)
click to toggle source
# File lib/standalone_validator.rb, line 21 def register_as(name) NamedValidations.create(name, self) end
required_fields()
click to toggle source
# 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()
click to toggle source
# 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
Private Class Methods
include_validation(*args, &block)
click to toggle source
# File lib/standalone_validator.rb, line 47 def include_validation(*args, &block) validation = Definitions.coerce_to_validation(*args, &block) @validations = validations.add(validation) end
requires_field(name)
click to toggle source
# File lib/standalone_validator.rb, line 52 def requires_field(name) @required_fields = required_fields.add(name.to_sym) end
Public Instance Methods
add_errors_to(object)
click to toggle source
# 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, object)
click to toggle source
# File lib/standalone_validator.rb, line 84 def requires_field?(field, object) 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, object) end end end
violations_of(object, appliable_validations = validations)
click to toggle source
# 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
Also aliased as: call
Private Instance Methods
validations()
click to toggle source
# File lib/standalone_validator.rb, line 96 def validations self.class.validations end