Sha256: 7d866f7aa490f98a8fa5c0e3aae211a6b94e66f27fcd39a92f62002233126fbb
Contents?: true
Size: 742 Bytes
Versions: 3
Compression:
Stored size: 742 Bytes
Contents
# frozen_string_literal: true module Mutant module AST class Pattern class Source include Anima.new(:string) def initialize(**attributes) super @lines = string.split("\n") end def line(line_index) @lines.fetch(line_index) end class Location include Anima.new(:source, :range, :line_index, :line_start) def display "#{source.line(line_index)}\n#{prefix}#{carets}" end private def prefix ' ' * (range.begin - line_start) end def carets '^' * range.size end end end # Source end # Pattern end # AST end # Mutant
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
mutant-0.11.13 | lib/mutant/ast/pattern/source.rb |
mutant-0.11.12 | lib/mutant/ast/pattern/source.rb |
mutant-0.11.11 | lib/mutant/ast/pattern/source.rb |