Sha256: 92cbd6eb6599fc50cc0e7de2807f76819cc4aa1907a7cf75aea350294f16abd0
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
module SourceRoute class TraceFilter attr_accessor :cond def initialize(condition) @cond = condition end # to improve performance, we didnt assign tp as instance variable def block_it?(tp) if @cond.track_params return true if negative_check(tp) if positives_check(tp) return !tp.binding.eval('local_variables').any? do |v| tp.binding.local_variable_get(v).object_id == @cond.track_params end end else return true if negative_check(tp) return false if positives_check(tp) end true # default is blocked the tp end def negative_check(tp) cond.negatives.any? do |method_key, value| tp.send(method_key).to_s =~ Regexp.new(value) end end def positives_check(tp) return true if cond.positives == {} cond.positives.any? do |method_key, value| if method_key.to_sym == :defined_class tp.send(method_key).name =~ Regexp.new(value) else tp.send(method_key).to_s =~ Regexp.new(value) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
source_route-0.6.0 | lib/source_route/trace_filter.rb |