Class: ActionTracer::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/action_tracer/filters.rb

Constant Summary collapse

PROC =
:Proc

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filter, kind:, method:) ⇒ Filter

Returns a new instance of Filter.



10
11
12
13
14
15
# File 'lib/action_tracer/filters.rb', line 10

def initialize(filter, kind:, method:)
  @filter = filter.is_a?(Symbol) ? filter : PROC
  @kind = kind
  @method = method
  @applied = ActionTracer.applied_filters.include? filter
end

Instance Attribute Details

#appliedObject (readonly)

Returns the value of attribute applied.



8
9
10
# File 'lib/action_tracer/filters.rb', line 8

def applied
  @applied
end

Instance Method Details

#after?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/action_tracer/filters.rb', line 31

def after?
  @kind == :after || @kind == :around
end

#before?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/action_tracer/filters.rb', line 27

def before?
  @kind == :before || @kind == :around
end

#to_aObject



17
18
19
20
21
22
23
24
25
# File 'lib/action_tracer/filters.rb', line 17

def to_a
  if @method.respond_to? :source_location
    source_location, line_number = *@method.source_location
    source_location = source_location&.sub(::ActionTracer.config.omitted_source_location_path, '')
    [APPLIED[@applied], @filter, source_location, line_number].compact
  else
    [APPLIED[:unrecognized], @method]
  end
end