class TypeProf::CodeRange - typeprof: Ruby Standard Library Documentation

# class TypeProf::CodeRange

### Attributes

first[R]
last[R]

### Public Class Methods

[](a, b, c, d) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 76
    def self.[](a, b, c, d)
      pos1 = CodePosition.new(a, b)
      pos2 = CodePosition.new(c, d)
      new(pos1, pos2)
    end

from_node(node, encoding = Encoding::UTF_16LE) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 58
    def self.from_node(node, encoding = Encoding::UTF_16LE)
      node = node.location if node.is_a?(Prism::Node)
      if node.is_a?(Prism::Location)
        pos1 = CodePosition.new(node.start_line, node.start_code_units_column(encoding))
        pos2 = CodePosition.new(node.end_line, node.end_code_units_column(encoding))
      elsif node.respond_to?(:location)
        loc = node.location
        row, col = loc.start_loc
        pos1 = CodePosition.new(row, col) # TODO: use SPLAT
        row, col = loc.end_loc
        pos2 = CodePosition.new(row, col)
      else
        p node.class.ancestors
        raise "unknown type: #{ node.class }"
      end
      new(pos1, pos2)
    end

new(first, last) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 52
    def initialize(first, last)
      @first = first
      @last = last
      raise unless first
    end

### Public Instance Methods

==(other) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 92
    def ==(other)
      @first == other.first && @last == other.last
    end

Also aliased as: eql?
eql?(other)
Alias for: ==
hash() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 98
    def hash
      [@first, @last].hash
    end

include?(pos) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 88
    def include?(pos)
      @first <= pos && pos < @last
    end

inspect()
Alias for: to_s
to_lsp() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 82
    def to_lsp
      { start: @first.to_lsp, end: @last.to_lsp }
    end

to_s() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/code_range.rb, line 102
    def to_s
      "%p-%p" % [@first, @last]
    end

Also aliased as: inspect