Class: Salestation::Web::InputValidator
- Inherits:
-
Object
- Object
- Salestation::Web::InputValidator
- Includes:
- Deterministic::Prelude
- Defined in:
- lib/salestation/web/input_validator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #call(input) ⇒ Object
-
#initialize(**validations) ⇒ InputValidator
constructor
A new instance of InputValidator.
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 |