Class: Lite::Validation::Validator::Coordinator::Errors::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/lite/validation/validator/coordinator/errors/builder.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBuilder



18
19
20
21
# File 'lib/lite/validation/validator/coordinator/errors/builder.rb', line 18

def initialize
  @internal_error = nil
  @structured_error = nil
end

Class Method Details

.define(&block) ⇒ Object



14
15
16
# File 'lib/lite/validation/validator/coordinator/errors/builder.rb', line 14

def self.define(&block)
  new.tap { _1.instance_eval(&block) }
end

Instance Method Details

#buildObject



23
24
25
26
27
28
29
30
# File 'lib/lite/validation/validator/coordinator/errors/builder.rb', line 23

def build
  builder = self

  Module.new do
    define_singleton_method :internal_error, &builder.internal_error || builder.structured_error
    define_singleton_method :structured_error, &builder.structured_error
  end
end

#internal_error(&block) ⇒ Object



32
33
34
35
36
37
38
39
40
# File 'lib/lite/validation/validator/coordinator/errors/builder.rb', line 32

def internal_error(&block)
  if block
    raise(Error, 'Internal error proc already set') unless @internal_error.nil?

    @internal_error = block
  else
    @internal_error
  end
end

#structured_error(&block) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/lite/validation/validator/coordinator/errors/builder.rb', line 42

def structured_error(&block)
  if block
    raise(Error, 'Structured error proc already set') unless @structured_error.nil?

    @structured_error = block
  else
    @structured_error
  end
end