Sha256: a2910b4484d37b73b0702fb69c8b1d0616bbf68a284370fd7cb993ceaed69a02

Contents?: true

Size: 536 Bytes

Versions: 4

Compression:

Stored size: 536 Bytes

Contents

# frozen_string_literal: true

module Dry
  module Effects
    module Effects
      class Implicit < ::Module
        class ImplicitEffect < Effect
          option :dependency
        end

        def initialize(dependency)
          super()

          lookup = ImplicitEffect.new(type: :implicit, dependency: dependency)

          module_eval do
            define_method(dependency) do |*args|
              ::Dry::Effects.yield(lookup.payload(args[0])).(*args)
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dry-effects-0.5.0 lib/dry/effects/effects/implicit.rb
dry-effects-0.4.1 lib/dry/effects/effects/implicit.rb
dry-effects-0.4.0 lib/dry/effects/effects/implicit.rb
dry-effects-0.3.1 lib/dry/effects/effects/implicit.rb