Sha256: 4e0228f1459a6568236d1b5b599ee24972adeea70ab3b95ea2ef064d6b78bc32
Contents?: true
Size: 842 Bytes
Versions: 10
Compression:
Stored size: 842 Bytes
Contents
# frozen_string_literal: true module Synvert::Core # Condition checks if nql or rules matches. class Rewriter::Condition # Initialize a Condition. # # @param instance [Synvert::Core::Rewriter::Instance] # @param nql_or_rules [String|Hash] # @yield run when condition matches def initialize(instance, nql_or_rules, &block) @instance = instance @node_query = NodeQuery.new(nql_or_rules, adapter: instance.current_parser) @block = block end # If condition matches, run the block code. def process @instance.instance_eval(&@block) if match? end protected # Check if condition matches # # @abstract def match? raise NotImplementedError, 'must be implemented by subclasses' end def target_node @instance.current_node end end end
Version data entries
10 entries across 10 versions & 1 rubygems