Sha256: 14c72444d2b85d7be511ecea3da8b8a40edae84530d5c5144671e05893a8402e
Contents?: true
Size: 1.2 KB
Versions: 7
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true require_relative './method_proxy' require_relative './context' module InstrumentAllTheThings module Helpers module ClassMethods def instrument(**kwargs) @last_settings = kwargs end def _conscript_last_iatt_settings @last_settings.tap { @last_settings = nil } end def singleton_method_added(method_name) settings = _conscript_last_iatt_settings return unless settings settings[:context] = Context.new( method_name: method_name, instance: false ) InstrumentAllTheThings::MethodProxy .for_class(singleton_class) .wrap_implementation(method_name, settings) super end def method_added(method_name) settings = _conscript_last_iatt_settings return unless settings settings[:context] = Context.new( method_name: method_name, instance: true ) InstrumentAllTheThings::MethodProxy .for_class(self) .wrap_implementation(method_name, settings) super end end def self.included(other_class) other_class.extend(ClassMethods) end end end
Version data entries
7 entries across 7 versions & 1 rubygems