Sha256: 6b8b7effa6d0f54f77d37e9b3138345952673f5bc7dd918116eeb9f2a9edd8ac
Contents?: true
Size: 949 Bytes
Versions: 132
Compression:
Stored size: 949 Bytes
Contents
# frozen_string_literal: true module RuboCop module Cop # Common functionality for working with heredoc strings. module Heredoc OPENING_DELIMITER = /(<<[~-]?)['"`]?([^'"`]+)['"`]?/.freeze def on_str(node) return unless node.heredoc? on_heredoc(node) end alias on_dstr on_str alias on_xstr on_str def on_heredoc(_node) raise NotImplementedError end private def indent_level(str) indentations = str.lines.map { |line| line[/^\s*/] }.reject { |line| line.end_with?("\n") } indentations.empty? ? 0 : indentations.min_by(&:size).size end def delimiter_string(node) return '' unless (match = node.source.match(OPENING_DELIMITER)) match.captures[1] end def heredoc_type(node) return '' unless (match = node.source.match(OPENING_DELIMITER)) match.captures[0] end end end end
Version data entries
132 entries across 132 versions & 12 rubygems