Sha256: f2e72f36f6d29965a3af05fcc1ee17fab0fe7e1369b9dcbf470b650a4052fd54

Contents?: true

Size: 664 Bytes

Versions: 14

Compression:

Stored size: 664 Bytes

Contents

module SourceRoute

  class TpFilter
    def initialize(condition)
      @condition = condition
    end

    # to improve performance, we didnt assign tp as instance variable
    def block_it?(tp)
      return true if negative_check(tp)
      return false if positive_check(tp)
      true
    end

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

    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

  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
source_route-0.2.0 lib/source_route/tp_filter.rb
source_route-0.1.8 lib/source_route/tp_filter.rb
source_route-0.1.7 lib/source_route/tp_filter.rb
source_route-0.1.6 lib/source_route/tp_filter.rb
source_route-0.1.5 lib/source_route/tp_filter.rb
source_route-0.1.4 lib/source_route/tp_filter.rb
source_route-0.1.3 lib/source_route/tp_filter.rb
source_route-0.1.2 lib/source_route/tp_filter.rb
source_route-0.1.1 lib/source_route/tp_filter.rb
source_route-0.1.0 lib/source_route/tp_filter.rb
source_route-0.0.9 lib/source_route/tp_filter.rb
source_route-0.0.8 lib/source_route/tp_filter.rb
source_route-0.0.7 lib/source_route/tp_filter.rb
source_route-0.0.6 lib/source_route/tp_filter.rb