Class: SourceRoute::TpFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/source_route/tp_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(condition) ⇒ TpFilter

Returns a new instance of TpFilter.



4
5
6
# File 'lib/source_route/tp_filter.rb', line 4

def initialize(condition)
  @condition = condition
end

Instance Method Details

#block_it?(tp) ⇒ Boolean

to improve performance, we didnt assign tp as instance variable

Returns:

  • (Boolean)


9
10
11
12
13
# File 'lib/source_route/tp_filter.rb', line 9

def block_it?(tp)
  return true if negative_check(tp)
  return false if positive_check(tp)
  true
end

#negative_check(tp) ⇒ Object



15
16
17
18
19
# File 'lib/source_route/tp_filter.rb', line 15

def negative_check(tp)
  @condition.negatives.any? do |method_key, value|
    tp.send(method_key).to_s =~ Regexp.new(value)
  end
end

#positive_check(tp) ⇒ Object



21
22
23
24
25
26
# File 'lib/source_route/tp_filter.rb', line 21

def positive_check(tp)
  return true if @condition.positive == {}
  @condition.positive.any? do |method_key, value|
    tp.send(method_key).to_s =~ Regexp.new(value)
  end
end