module I18n::Tasks::Scanners::OccurrenceFromPosition

Public Instance Methods

occurrence_from_position(path, contents, position, raw_key: nil) click to toggle source

Given a path to a file, its contents and a position in the file, return a {Results::Occurrence} at the position until the end of the line.

@param path [String] @param contents [String] contents of the file at the path. @param position [Integer] position just before the beginning of the match. @return [Results::Occurrence]

# File lib/i18n/tasks/scanners/occurrence_from_position.rb, line 14
def occurrence_from_position(path, contents, position, raw_key: nil)
  line_begin = contents.rindex(/^/, position - 1)
  line_end   = contents.index(/.(?=\r?\n|$)/, position)
  Results::Occurrence.new(
    path: path,
    pos: position,
    line_num: contents[0..position].count("\n") + 1,
    line_pos: position - line_begin + 1,
    line: contents[line_begin..line_end],
    raw_key: raw_key
  )
end