Sha256: 79c3024ade79dc543ce28e4c29665a5de1c64c3568b97b46de62369715685bca

Contents?: true

Size: 963 Bytes

Versions: 28

Compression:

Stored size: 963 Bytes

Contents

# frozen_string_literal: true

module Synvert::Core
  # ReplaceErbStmtWithExprAction to replace erb stmt code to expr,
  # @example
  #   e.g. <% form_for ... %> => <%= form_for ... %>.
  class Rewriter::ReplaceErbStmtWithExprAction < NodeMutation::Action
    # Initialize a ReplaceErbStmtWithExprAction.
    #
    # @param node [Synvert::Core::Rewriter::Node]
    # @param erb_source [String]
    # @param adapter [NodeMutation::Adapter]
    def initialize(node, erb_source, adapter:)
      super(node, nil, adapter: adapter)
      @erb_source = erb_source
      @type = :insert
    end

    # The new erb expr code.
    #
    # @return [String] new code.
    def new_code
      '='
    end

    private

    # Calculate the begin the end positions.
    def calculate_position
      @start = @adapter.get_start(@node)
      loop do
        @start -= 1
        break if @erb_source[@start] == '%'
      end
      @start += 1
      @end = @start
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
synvert-core-2.2.2 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.2.1 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.2.0 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.1.2 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.1.1 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.1.0 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.0.3 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.0.2 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.0.1 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-2.0.0 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.35.4 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.35.3 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.35.2 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.35.1 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.35.0 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.34.0 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.33.3 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.33.2 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.33.1 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb
synvert-core-1.33.0 lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb