Sha256: 7c1174905bc84ceb7019005b6da1765d24d640ecf74f4a70c7867df226407a47
Contents?: true
Size: 584 Bytes
Versions: 23
Compression:
Stored size: 584 Bytes
Contents
# frozen_string_literal: true module Salestation class Web < Module class InputValidator include Deterministic::Prelude def self.[](**validations) new(validations) end def initialize(**validations) @validations = validations end 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 end end end
Version data entries
23 entries across 23 versions & 1 rubygems