Module: SuperModule::ModuleBodyMethodCallRecorder
- Defined in:
- lib/super_module/module_body_method_call_recorder.rb
Instance Method Summary collapse
- #__all_module_body_method_calls_in_definition_order ⇒ Object
- #__method_signature(method_name, args) ⇒ Object
- #__module_body_method_calls ⇒ Object
-
#__record_method_call(method_name, *args, &block) ⇒ Object
TODO handle case of a method call being passed a block (e.g. validates do custom validator end ).
- #__singleton_method_call_recorder(method_name, method_args) ⇒ Object
- #__super_module_singleton_methods_excluded_from_call_recording ⇒ Object
Instance Method Details
#__all_module_body_method_calls_in_definition_order ⇒ Object
24 25 26 27 28 |
# File 'lib/super_module/module_body_method_call_recorder.rb', line 24 def __all_module_body_method_calls_in_definition_order ancestor_module_body_method_calls = included_super_modules.map(&:__module_body_method_calls).flatten(1) all_module_body_method_calls = __module_body_method_calls + ancestor_module_body_method_calls all_module_body_method_calls.reverse end |
#__method_signature(method_name, args) ⇒ Object
14 15 16 |
# File 'lib/super_module/module_body_method_call_recorder.rb', line 14 def __method_signature(method_name, args) "#{method_name}(#{args.to_a.map(&:to_s).join(",")})" end |
#__module_body_method_calls ⇒ Object
10 11 12 |
# File 'lib/super_module/module_body_method_call_recorder.rb', line 10 def __module_body_method_calls @__module_body_method_calls ||= [] end |
#__record_method_call(method_name, *args, &block) ⇒ Object
TODO handle case of a method call being passed a block (e.g. validates do custom validator end )
19 20 21 22 |
# File 'lib/super_module/module_body_method_call_recorder.rb', line 19 def __record_method_call(method_name, *args, &block) return if self.is_a?(Class) __module_body_method_calls << [method_name, args, block] end |
#__singleton_method_call_recorder(method_name, method_args) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/super_module/module_body_method_call_recorder.rb', line 30 def __singleton_method_call_recorder(method_name, method_args) unless __super_module_singleton_methods_excluded_from_call_recording.include?(method_name) method_call_recorder_args = "'#{method_name}'" method_call_recorder_args << ", #{method_args}" unless method_args.to_s.strip == '' "self.__record_method_call(#{method_call_recorder_args})" end end |
#__super_module_singleton_methods_excluded_from_call_recording ⇒ Object
3 4 5 6 7 8 |
# File 'lib/super_module/module_body_method_call_recorder.rb', line 3 def __super_module_singleton_methods_excluded_from_call_recording @__super_module_singleton_methods_excluded_from_call_recording ||= [ :__record_method_call, :__method_signature ] end |