Sha256: 67ab7d81449b3eebb60069bef948cb00642d8d76041bd95453ae566f3156fe69

Contents?: true

Size: 924 Bytes

Versions: 10

Compression:

Stored size: 924 Bytes

Contents

# frozen_string_literal: true

module Synvert::Core
  # DeleteAction deletes child nodes.
  class Rewriter::DeleteAction < Rewriter::Action
    # Initialize a DeleteAction.
    #
    # @param instance [Synvert::Core::Rewriter::Instance]
    # @param selectors [Array<Symbol, String>] used to select child nodes
    def initialize(instance, *selectors)
      super(instance, nil)
      @selectors = selectors
    end

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

    private

    # Calculate the begin and end positions.
    def calculate_position
      @begin_pos = @selectors.map { |selector| @node.child_node_range(selector) }
                             .compact.map(&:begin_pos).min
      @end_pos = @selectors.map { |selector| @node.child_node_range(selector) }
                           .compact.map(&:end_pos).max
      squeeze_spaces
      remove_comma
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
synvert-core-1.3.0 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.2.1 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.2.0 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.1.1 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.1.0 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.0.5 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.0.4 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.0.3 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.0.2 lib/synvert/core/rewriter/action/delete_action.rb
synvert-core-1.0.1 lib/synvert/core/rewriter/action/delete_action.rb