module DeepCover::Node::Mixin::Rewriting
Public Class Methods
included(base)
click to toggle source
# File lib/deep_cover/node/mixin/rewriting.rb, line 6 def self.included(base) base.has_child_handler('rewrite_%{name}') end
Public Instance Methods
resolve_rewrite(rule, context)
click to toggle source
Replaces all the '%{local}' or '%{some_tracker}' in rewriting rules
# File lib/deep_cover/node/mixin/rewriting.rb, line 19 def resolve_rewrite(rule, context) return if rule == nil sources = context.tracker_sources format(rule, local: covered_code.local_var, node: '%{node}', **sources) end
rewrite()
click to toggle source
Code to add before and after the node for covering purposes
# File lib/deep_cover/node/mixin/rewriting.rb, line 11 def rewrite end
rewrite_child(child, name = nil)
click to toggle source
Default child rewriting rule
# File lib/deep_cover/node/mixin/rewriting.rb, line 15 def rewrite_child(child, name = nil) end
rewriting_rules()
click to toggle source
Returns an array of [range, rule], where rule is a string containing '%{node}' Rules must be ordered inner-most first
# File lib/deep_cover/node/mixin/rewriting.rb, line 27 def rewriting_rules [ resolve_rewrite(rewrite, self), resolve_rewrite(parent.rewrite_child(self), parent), ].compact.map { |rule| [expression, rule] } end