Sha256: 97e915cfbf8471199988e082c6bb813454c44f40fdf8e6d683e96e30b859b2e5

Contents?: true

Size: 759 Bytes

Versions: 4

Compression:

Stored size: 759 Bytes

Contents

# frozen_string_literal: true

module Synvert::Core
  # DeleteAction to delete child nodes.
  class Rewriter::DeleteAction < Rewriter::Action
    def initialize(instance, *selectors)
      super(instance, nil)
      @selectors = selectors
    end

    # Begin position of code to delete.
    #
    # @return [Integer] begin position.
    def begin_pos
      @selectors.map { |selector| @node.child_node_range(selector) }.compact.map(&:begin_pos).min
    end

    # End position of code to delete.
    #
    # @return [Integer] end position.
    def end_pos
      @selectors.map { |selector| @node.child_node_range(selector) }.compact.map(&:end_pos).max
    end

    # The rewritten code, always empty string.
    def rewritten_code
      ''
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
synvert-core-0.55.0 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-0.54.3 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-0.54.2 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-0.54.1 lib/synvert/core/rewriter/action/delete_action.rb