Class: RecordingParent

Inherits:
BasicObject
Extended by:
ConstMissing
Defined in:
lib/dissociated_introspection/recording_parent.rb

Defined Under Namespace

Modules: ConstMissing

Class Method Summary collapse

Methods included from ConstMissing

const_missing

Class Method Details

.__missing_class_macros__Object



7
8
9
# File 'lib/dissociated_introspection/recording_parent.rb', line 7

def __missing_class_macros__
  @__missing_class_macros__ ||= []
end

.__missing_constants__Object



35
36
37
38
# File 'lib/dissociated_introspection/recording_parent.rb', line 35

def __missing_constants__
  # This file and it's class variables are reinitialized within a new module namespace on every run.
  @@__missing_constants__ ||= {}
end

.listen_to_defined_macros(*methods) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/dissociated_introspection/recording_parent.rb', line 40

def listen_to_defined_macros(*methods)
  methods.each do |m|
    module_eval(<<-RUBY, __FILE__)
      def self.#{m}(*args, &block)
        __missing_class_macros__.push({ __method__ => [args, block].compact })
      end
    RUBY
  end
end

.method_missing(m, *args, &block) ⇒ Object



3
4
5
# File 'lib/dissociated_introspection/recording_parent.rb', line 3

def method_missing(m, *args, &block)
  __missing_class_macros__.push({ m => [args, block].compact })
end