Sha256: 79fc3e4b6628b3f87950c0e99ba5a14a281ffb5f11f2037b093979d2cfde2b80
Contents?: true
Size: 858 Bytes
Versions: 6
Compression:
Stored size: 858 Bytes
Contents
# frozen_string_literal: true # PrependAction to prepend code to the top of node body. class NodeMutation::PrependAction < NodeMutation::Action def initialize(node, code) super(node, code) @type = :insert end private DO_LENGTH = ' do'.length # Calculate the begin and end positions. def calculate_position node_start = NodeMutation.adapter.get_start(@node) node_source = NodeMutation.adapter.get_source(@node) first_line = node_source.split("\n").first @start = first_line.end_with?("do") ? node_start + first_line.index("do") + "do".length : node_start + first_line.length @end = @start end # Indent of the node. # # @param node [Parser::AST::Node] # @return [String] n times whitesphace def indent(node) ' ' * (NodeMutation.adapter.get_start_loc(node).column + NodeMutation.tab_width) end end
Version data entries
6 entries across 6 versions & 1 rubygems