Class: Salestation::Web::InputValidator

Inherits:
Object
  • Object
show all
Includes:
Deterministic::Prelude
Defined in:
lib/salestation/web/input_validator.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**validations) ⇒ InputValidator

Returns a new instance of InputValidator.



12
13
14
# File 'lib/salestation/web/input_validator.rb', line 12

def initialize(**validations)
  @validations = validations
end

Class Method Details

.[](**validations) ⇒ Object



8
9
10
# File 'lib/salestation/web/input_validator.rb', line 8

def self.[](**validations)
  new(**validations)
end

Instance Method Details

#call(input) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/salestation/web/input_validator.rb', line 16

def call(input)
  @validations.reduce(Deterministic::Result::Success({})) do |result, (key, validation)|
    result.map do
      validation.call(input.fetch(key, nil))
    end
  end.map(->(_) { Deterministic::Result::Success(input) })
end