class DeepCover::Analyser::Node
Public Class Methods
human_name()
click to toggle source
# File lib/deep_cover/analyser/node.rb, line 7 def self.human_name 'Nodes' end
new(source, **options)
click to toggle source
Calls superclass method
# File lib/deep_cover/analyser/node.rb, line 11 def initialize(source, **options) @cache = {}.compare_by_identity super @allow_filters = Config.options_to_ignored(**options) .map { |kind| Node.filter_to_method_name(kind) } @nocov_ranges = FlagCommentAssociator.new(covered_code) end
Public Instance Methods
in_subset?(node, _parent)
click to toggle source
# File lib/deep_cover/analyser/node.rb, line 27 def in_subset?(node, _parent) node.executable? end
node_runs(node)
click to toggle source
Calls superclass method
# File lib/deep_cover/analyser/node.rb, line 19 def node_runs(node) @cache.fetch(node) do runs = super runs = nil if runs == 0 && should_be_ignored?(node) @cache[node] = runs end end
Protected Instance Methods
convert(node, **)
click to toggle source
# File lib/deep_cover/analyser/node.rb, line 33 def convert(node, **) Analyser::CoveredCodeSource.new(node) end
Private Instance Methods
is_ignored?(node)
click to toggle source
# File lib/deep_cover/analyser/node.rb, line 45 def is_ignored?(node) if node == nil false elsif node.executable? node_runs(node).nil? else is_ignored?(node.parent) end end
should_be_ignored?(node)
click to toggle source
# File lib/deep_cover/analyser/node.rb, line 39 def should_be_ignored?(node) @nocov_ranges.include?(node) || @allow_filters.any? { |f| node.public_send(f) } || is_ignored?(node.parent) end