Sha256: fd9fa91b9d371342e1727648bf794fc2aa03d1f2a70e93abc0f37f0509cec56d
Contents?: true
Size: 717 Bytes
Versions: 9
Compression:
Stored size: 717 Bytes
Contents
# frozen_string_literal: true # rubocop:todo all require 'singleton' class LocalResourceRegistry include Singleton def initialize @resources = [] end def register(resource, finalizer) @resources << [resource, finalizer] # Return resource for chaining resource end def unregister(resource) @resources.delete_if do |_resource, finalizer| _resource == resource end end def close_all @resources.each do |resource, finalizer| if finalizer.is_a?(Symbol) resource.send(finalizer) elsif finalizer.is_a?(Proc) finalizer.call(resource) else raise "Unknown finalizer: #{finalizer}" end end @resources = [] end end
Version data entries
9 entries across 9 versions & 2 rubygems