Class: Lite::Validation::Validator::Result::Valid::Iterable::Hash

Inherits:
Abstract::Instance show all
Includes:
Disputable::Hash, Disputable::Iterable
Defined in:
lib/lite/validation/validator/result/valid/iterable/hash.rb

Constant Summary

Constants included from Abstract

Abstract::EMPTY

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Disputable::Iterable

#navigate

Methods included from Disputable::Hash

#child

Methods included from Result::Abstract::Success

#failure?, #to_result

Methods inherited from Disputable::Instance

#committed?, #refute, #refuted?

Methods included from Result::Abstract::Refutable

#refute, #refuted?

Methods included from Result::Abstract::Disputable

#dispute

Methods included from Result::Abstract

#success?

Class Method Details

.instance(commit, children) ⇒ Object



19
20
21
# File 'lib/lite/validation/validator/result/valid/iterable/hash.rb', line 19

def self.instance(commit, children)
  new(commit, children.dup)
end

Instance Method Details

#inspectObject



23
24
25
# File 'lib/lite/validation/validator/result/valid/iterable/hash.rb', line 23

def inspect
  signature('Valid::Iterable::Hash', nil)
end

#merge(result, key) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/lite/validation/validator/result/valid/iterable/hash.rb', line 32

def merge(result, key)
  if result.success?
    children.merge!(key => result) if commit_as == false || result.committed?
    self
  else
    Disputed::Iterable.initial.append(result, key)
  end
end


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

def navigable
  navigable = Valid.navigable(children)
  commit_as ? navigable.auto_commit(as: commit_as) : navigable
end