Sha256: f4a575501e7cd96f317a310dbdf5c80a3e1ff935c051c7f47874fe3a909ee7e6
Contents?: true
Size: 482 Bytes
Versions: 16
Compression:
Stored size: 482 Bytes
Contents
# frozen_string_literal: true require "dry/monads" module Pipeable # Provids low-level functionality processing a sequence of steps. Pipe = lambda do |input, *steps| fail ArgumentError, "Pipe must have at least one step." if steps.empty? result = input.is_a?(Dry::Monads::Result) ? input : Dry::Monads::Success(input) steps.reduce(&:>>).call result rescue NoMethodError raise TypeError, "Step must be functionally composable and answer a monad." end end
Version data entries
16 entries across 16 versions & 1 rubygems