Sha256: fc7f10ae3abe3c7db9c3acb439e8920fb69a383071dce3b16e7d8eca8306cf9a

Contents?: true

Size: 757 Bytes

Versions: 1

Compression:

Stored size: 757 Bytes

Contents

# encoding: utf-8

module Synvert
  class Rewriter::Condition
    def initialize(instance, options, &block)
      @instance = instance
      @options = options
      @block = block
    end

    def process
      @instance.instance_eval &@block if match?
    end
  end

  class Rewriter::UnlessExistCondition < Rewriter::Condition
    def match?
      match = false
      @instance.current_node.recursive_children do |child_node|
        match = match || (child_node && child_node.match?(@instance, @options))
      end
      !match
    end
  end

  class Rewriter::IfOnlyExistCondition < Rewriter::Condition
    def match?
      :begin != @instance.current_node.body.type &&
        @instance.current_node.body.match?(@instance, @options)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
synvert-0.0.4 lib/synvert/rewriter/condition.rb