Sha256: 31627c7e86b98924ec404f3c011798bc835335af05c286a1fd1261ffaa3a56a3
Contents?: true
Size: 823 Bytes
Versions: 2
Compression:
Stored size: 823 Bytes
Contents
# frozen_string_literal: true require "dry/effects/effect" 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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-effects-0.3.0 | lib/dry/effects/effects/defer.rb |
dry-effects-0.2.0 | lib/dry/effects/effects/defer.rb |