Class: Lite::Validation::Validator::Result::Valid::Navigable

Inherits:
Abstract::Instance show all
Includes:
Abstract::Collect, Disputable::Navigable
Defined in:
lib/lite/validation/validator/result/valid/navigable.rb

Constant Summary

Constants included from Abstract

Abstract::EMPTY

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Disputable::Navigable

#navigate, #success_at?

Methods included from Disputable::Hash

#child

Methods included from Result::Abstract::Refutable

#refute, #refuted?

Methods included from Result::Abstract

#success?

Constructor Details

#initialize(children, *args) ⇒ Navigable

Returns a new instance of Navigable.



20
21
22
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 20

def initialize(children, *args)
  super(children.freeze, *args)
end

Class Method Details

.instance(*args) ⇒ Object



16
17
18
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 16

def self.instance(*args)
  new(EMPTY, *args)
end

Instance Method Details

#auto_commit(as:) ⇒ Object



24
25
26
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 24

def auto_commit(as:)
  commit(collect_committed(as: as))
end

#dispute(error) ⇒ Object



28
29
30
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 28

def dispute(error)
  Disputed::Navigable.instance(error: error)
end

#inspectObject



36
37
38
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 36

def inspect
  signature('Valid::Navigable', nil)
end

#iterable(commit:) ⇒ Object



40
41
42
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 40

def iterable(commit:)
  Iterable.instance(children, commit: commit)
end

#merge(result, key) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 44

def merge(result, key)
  if result.success?
    self.class.send(
      :new,
      children.merge(key => result)
    )
  else
    Disputed::Navigable.instance.append(result, key)
  end
end

#successObject



32
33
34
# File 'lib/lite/validation/validator/result/valid/navigable.rb', line 32

def success
  Option.none
end