Class: StandaloneValidator::ValidationResult

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/standalone_validator/validation_result.rb

Constant Summary collapse

OK =
new({})

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ ValidationResult

Returns a new instance of ValidationResult.



21
22
23
24
25
26
# File 'lib/standalone_validator/validation_result.rb', line 21

def initialize(attributes)
  @validated_object = attributes.fetch(:validated_object) { nil }

  violations  = attributes.fetch(:violations) { Hamster::EmptyList }
  @violations = violations.to_list
end

Instance Attribute Details

#validated_objectObject (readonly)

Returns the value of attribute validated_object.



19
20
21
# File 'lib/standalone_validator/validation_result.rb', line 19

def validated_object
  @validated_object
end

#violationsObject (readonly)

Returns the value of attribute violations.



19
20
21
# File 'lib/standalone_validator/validation_result.rb', line 19

def violations
  @violations
end

Class Method Details

.build_for(object, &block) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/standalone_validator/validation_result.rb', line 6

def self.build_for(object, &block)
  builder = ValidationResultBuilder.new
  builder.validated_object = object

  if block.arity == 1
    block.call(builder)
  else
    builder.instance_eval(&block)
  end

  builder.result
end

Instance Method Details

#[](attribute) ⇒ Object



54
55
56
57
58
# File 'lib/standalone_validator/validation_result.rb', line 54

def [](attribute)
  violations.select do |violation|
    violation.attribute == attribute
  end
end

#add_errors_to(errors_object) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/standalone_validator/validation_result.rb', line 30

def add_errors_to(errors_object)
  violations.each do |violation|
    violation.add_to(errors_object)
  end

  self
end

#each(&block) ⇒ Object



40
41
42
# File 'lib/standalone_validator/validation_result.rb', line 40

def each(&block)
  violations.each(&block)
end

#empty?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/standalone_validator/validation_result.rb', line 44

def empty?
  violations.empty?
end

#of_type(type) ⇒ Object



60
61
62
# File 'lib/standalone_validator/validation_result.rb', line 60

def of_type(type)
  subset { |violation| violation.type == type }
end

#ok?Boolean Also known as: valid?

Returns:

  • (Boolean)


48
49
50
# File 'lib/standalone_validator/validation_result.rb', line 48

def ok?
  violations.empty?
end

#on_attribute(attribute) ⇒ Object



64
65
66
# File 'lib/standalone_validator/validation_result.rb', line 64

def on_attribute(attribute)
  subset { |violation| violation.attribute == attribute }
end