Module: DebugLogging::InstanceNotifier

Defined in:
lib/debug_logging/instance_notifier.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



4
5
6
# File 'lib/debug_logging/instance_notifier.rb', line 4

def extended(base)
  base.include(LambDartable::Note)
end

Instance Method Details

#i_notified(*methods_to_log) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/debug_logging/instance_notifier.rb', line 9

def i_notified(*methods_to_log)
  method_names, payload, config_opts = DebugLogging::Util.extract_payload_and_config(
    method_names: methods_to_log,
    payload: nil,
    config: nil,
  )
  instance_method_notifier = DebugLogging::InstanceNotifierModulizer.to_mod(
    methods_to_notify: Array(method_names),
    payload: payload,
    config: config_opts,
  )

  wrapped_in_notifier = Module.new do
    singleton_class.send(:define_method, :included) do |host_class|
      host_class.prepend(instance_method_notifier)
    end
  end

  send(:include, wrapped_in_notifier)
end