Class: TraceViz::Collectors::Filters::Registry
- Inherits:
-
Object
- Object
- TraceViz::Collectors::Filters::Registry
- Defined in:
- lib/trace_viz/collectors/filters/registry.rb
Constant Summary collapse
- FILTERS =
{ include_classes: IncludeClassesFilter, include_gems: IncludeGemsFilter, exclude_internal_call: ExcludeInternalCallFilter, exclude_gems: ExcludeGemsFilter, exclude_rails_framework: ExcludeRailsFrameworkFilter, exclude_default_classes: ExcludeDefaultClassesFilter, exclude_classes: ExcludeClassesFilter, }.freeze
Class Method Summary collapse
Class Method Details
.build(filters) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/trace_viz/collectors/filters/registry.rb', line 26 def build(filters) filters.each_with_object([]) do |filter, result| case filter when Symbol # Handle simple filters # (e.g., :depth, :exclude_internal_call) klass = fetch_filter_class(filter) result << klass.new when Hash # Handle complex filters with options # (e.g., { include_classes: { classes: [Example] } }) filter.each do |filter_key, | klass = fetch_filter_class(filter_key) result << klass.new(**) end else raise ArgumentError, "Invalid filter format: #{filter.inspect}" end end end |