class Dry::Effects::Effects::Interrupt

Public Class Methods

new(scope = :default) click to toggle source
Calls superclass method
# File lib/dry/effects/effects/interrupt.rb, line 13
def initialize(scope = :default)
  super()

  interrupt = InterruptEffect.new(type: :interrupt, scope: scope)

  module_eval do
    define_method(scope) do |payload = Undefined|
      if Undefined.equal?(payload)
        ::Dry::Effects.yield(interrupt)
      else
        ::Dry::Effects.yield(interrupt.payload(payload))
      end
    end
  end
end