Class: Tracing::CompositeModuleFilter
- Inherits:
-
BaseFilter
- Object
- BaseFilter
- Tracing::CompositeModuleFilter
- Defined in:
- lib/filters/composite/composite_module_filter.rb
Instance Attribute Summary
Attributes inherited from BaseFilter
Instance Method Summary collapse
-
#allow_action(msg, context) ⇒ Object
filter on module names and then on class names and methods within those modules.
-
#initialize(options) ⇒ CompositeModuleFilter
constructor
A new instance of CompositeModuleFilter.
Methods inherited from BaseFilter
#name_allow_action, register_filters, unregister_filters
Constructor Details
#initialize(options) ⇒ CompositeModuleFilter
Returns a new instance of CompositeModuleFilter.
3 4 5 6 |
# File 'lib/filters/composite/composite_module_filter.rb', line 3 def initialize() super() @rules = || {} end |
Instance Method Details
#allow_action(msg, context) ⇒ Object
filter on module names and then on class names and methods within those modules
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/filters/composite/composite_module_filter.rb', line 9 def allow_action(msg, context) puts "CM" modules_name = context[:full_modules_name] action = rules[:default] || :yield # puts "modules_name: #{modules_name}" rules[:modules].each do |_module| # get names of modules to match names = _module[:names] class_rules = _module[:class_rules] classes = _module[:classes] method_rules =_module[:method_rules] class_name = context[:class_name] method_name = context[:method_name] # puts "module names to match: #{names}" # puts "context class_name: #{class_name}" # puts "context method_name: #{method_name}" # test if current module name matches any of the module names for this rule next if !names.matches_any?(modules_name) # if name matches rule if classes && !class_name.blank? # puts "CC filter" composite_class_filter = CompositeClassFilter.new(_module) action = composite_class_filter.allow_action(msg, context) return action if (action == :include || action == :exclude) end if class_rules && !class_name.blank? # puts "class filter" class_filter = ClassFilter.new(_module) action = class_filter.allow_action(msg, context) return action if (action == :include || action == :exclude) end if method_rules && !method_name.blank? # puts "method filter" method_filter = MethodFilter.new(_module) action = method_filter.allow_action(msg, context) return action if (action == :include || action == :exclude) end end # puts "action: #{action}" return action end |