Sha256: 5024a44c3cda183aeb4e83dfd235e3343a3ca4437ba44d944ea5ee18d5a3162c
Contents?: true
Size: 448 Bytes
Versions: 6
Compression:
Stored size: 448 Bytes
Contents
# frozen_string_literal: true module Dry module Transaction # @api private class Stack RETURN = -> x { x } def initialize(steps) @stack = compile(steps) end def call(m) @stack.(m) end private def compile(steps) steps.reverse.reduce(RETURN) do |next_step, step| proc { |m| m.bind { |value| step.(value, next_step) } } end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems