Sha256: 0d51da6105255b3e341e43352363bc4087745a57506ff8b1649554c7d345db7c
Contents?: true
Size: 1.34 KB
Versions: 2
Compression:
Stored size: 1.34 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) InstrumentAllTheThings::MethodProxy.for_class(other_class) InstrumentAllTheThings::MethodProxy.for_class(other_class.singleton_class) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
instrument_all_the_things-1.2.0 | lib/instrument_all_the_things/helpers.rb |
instrument_all_the_things-1.1.1 | lib/instrument_all_the_things/helpers.rb |