module ElasticAPM::Injectors
def self.const_defined?(const_name)
def self.const_defined?(const_name) const = Util::Inflector.constantize(const_name) !!const rescue NameError false end
def self.hook_into(name)
def self.hook_into(name) return unless (registration = require_hooks[name]) return unless const_defined?(registration.const_name) installed[registration.const_name] = registration registration.install registration.require_paths.each do |path| require_hooks.delete path end end
def self.installed
def self.installed @installed ||= {} end
def self.register(*args)
def self.register(*args) registration = Registration.new(*args) if const_defined?(registration.const_name) installed[registration.const_name] = registration registration.install else register_require_hook registration end end
def self.register_require_hook(registration)
def self.register_require_hook(registration) registration.require_paths.each do |path| require_hooks[path] = registration end end
def self.require_hooks
def self.require_hooks @require_hooks ||= {} end