Sha256: 2d5437667f96a5cc45c1f85cbdf14aaa157d0aa0f6fc0c4e2980c601b1634e5e

Contents?: true

Size: 1.03 KB

Versions: 4

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true
module I18n
  module Tasks
    module Scanners
      module OccurrenceFromPosition
        # 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 [Fixnum] position just before the beginning of the match.
        # @return [Results::Occurrence]
        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".freeze) + 1,
              line_pos: position - line_begin + 1,
              line:     contents[line_begin..line_end],
              raw_key: raw_key)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
i18n-tasks-0.9.6 lib/i18n/tasks/scanners/occurrence_from_position.rb
i18n-tasks-0.9.5 lib/i18n/tasks/scanners/occurrence_from_position.rb
i18n-tasks-0.9.4 lib/i18n/tasks/scanners/occurrence_from_position.rb
i18n-tasks-0.9.3 lib/i18n/tasks/scanners/occurrence_from_position.rb