Sha256: e28cefe46b79ce762df6ee4c492e65ff552f5a49596ded902f86608bae2d3481
Contents?: true
Size: 558 Bytes
Versions: 4
Compression:
Stored size: 558 Bytes
Contents
# frozen_string_literal: true module Pipeable module Steps # Validates a result via a callable operation. class Validate < Abstract def initialize(operation, as: :to_h, **) super(**) @operation = operation @as = as end def call result result.bind do |payload| value = operation.call payload return Failure value if value.failure? Success(as ? value.public_send(as) : value) end end private attr_reader :operation, :as end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
pipeable-0.4.0 | lib/pipeable/steps/validate.rb |
pipeable-0.3.0 | lib/pipeable/steps/validate.rb |
pipeable-0.2.0 | lib/pipeable/steps/validate.rb |
pipeable-0.1.0 | lib/pipeable/steps/validate.rb |