class Dry::Effects::Effects::Lock
Constants
- Lock
- Locked
- Meta
- Unlock
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/dry/effects/effects/lock.rb, line 14 def initialize super module_eval do define_method(:lock) do |key, meta: Undefined, &block| if block begin handle = ::Dry::Effects.yield(Lock.payload(key, meta)) block.(!handle.nil?) ensure ::Dry::Effects.yield(Unlock.payload(handle)) if handle end else ::Dry::Effects.yield(Lock.payload(key, meta)) end end define_method(:unlock) do |key| ::Dry::Effects.yield(Unlock.(key)) end define_method(:locked?) do |key| ::Dry::Effects.yield(Locked.payload(key)) end define_method(:lock_meta) do |key| ::Dry::Effects.yield(Meta.payload(key)) end end end