Sha256: ed1ef6339f45fa5cff2fd63045780986cca06c8ea0504003d394939dd60b641b
Contents?: true
Size: 818 Bytes
Versions: 1
Compression:
Stored size: 818 Bytes
Contents
require_relative 'registry/registerable' module Datadog # Registry provides insertion/retrieval capabilities for integrations class Registry include Enumerable Entry = Struct.new(:name, :klass, :auto_patch) def initialize @data = {} @mutex = Mutex.new end def add(name, klass, auto_patch = false) @mutex.synchronize do @data[name] = Entry.new(name, klass, auto_patch).freeze end end def each @mutex.synchronize do @data.each { |_, entry| yield(entry) } end end def [](name) entry = @data[name] entry.klass if entry end def to_h @mutex.synchronize do @data.each_with_object({}) do |(_, entry), hash| hash[entry.name] = entry.auto_patch end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-0.15.0.beta1 | lib/ddtrace/registry.rb |