Class: RecordingParent
- Inherits:
- BasicObject
- Extended by:
- ConstMissing
- Defined in:
- lib/dissociated_introspection/recording_parent.rb
Defined Under Namespace
Modules: ConstMissing
Class Method Summary collapse
- .__missing_class_macros__ ⇒ Object
- .__missing_constants__ ⇒ Object
- .listen_to_defined_macros(*methods) ⇒ Object
- .method_missing(m, *args, &block) ⇒ Object
Methods included from ConstMissing
Class Method Details
.__missing_class_macros__ ⇒ Object
9 10 11 |
# File 'lib/dissociated_introspection/recording_parent.rb', line 9 def __missing_class_macros__ @__missing_class_macros__ ||= [] end |
.__missing_constants__ ⇒ Object
37 38 39 40 |
# File 'lib/dissociated_introspection/recording_parent.rb', line 37 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
42 43 44 45 46 47 48 49 50 |
# File 'lib/dissociated_introspection/recording_parent.rb', line 42 def listen_to_defined_macros(*methods) methods.each do |m| module_eval(" def self.\#{m}(*args, &block)\n __missing_class_macros__.push({ __method__ => [args, block].compact })\n end\n RUBY\n end\nend\n", __FILE__) |
.method_missing(m, *args, &block) ⇒ Object
5 6 7 |
# File 'lib/dissociated_introspection/recording_parent.rb', line 5 def method_missing(m, *args, &block) __missing_class_macros__.push({ m => [args, block].compact }) end |