Sha256: 976c3d8154993f6d35af0a8e12540803db0bbdd55562d3e8645083cf1fbb842a
Contents?: true
Size: 793 Bytes
Versions: 4
Compression:
Stored size: 793 Bytes
Contents
# frozen_string_literal: true module Dry module Effects module Effects class Defer < ::Module Defer = Effect.new(type: :defer, name: :defer) Later = Effect.new(type: :defer, name: :later) Wait = Effect.new(type: :defer, name: :wait) def initialize super module_eval do define_method(:defer) do |executor: Undefined, &block| ::Dry::Effects.yield(Defer.(block, executor)) end define_method(:wait) do |promises| ::Dry::Effects.yield(Wait.(promises)) end define_method(:later) do |executor: Undefined, &block| ::Dry::Effects.yield(Later.(block, executor)) end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems