Sha256: 37a451ddccafc7e3fc06659995c2636d87ed8c8344a3eaab3c121a4c5ece14bf

Contents?: true

Size: 561 Bytes

Versions: 3

Compression:

Stored size: 561 Bytes

Contents

# frozen_string_literal: true

module Yardcheck
  class SourceLines
    include Concord.new(:lines)

    def self.process(contents)
      new(
        contents.split("\n").map do |line|
          line.gsub(/^\s+/, '')
        end
      )
    end

    def documentation_above(line)
      first_line = last_line = line - 1

      first_line -= 1 until first_line.equal?(0) || line(first_line) !~ /^\s*#/

      lines[first_line..(last_line - 1)]
    end

    private

    def line(number)
      lines.fetch(number - 1)
    end
  end # SourceLines
end # Yardcheck

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
yardcheck-0.0.3 lib/yardcheck/source_lines.rb
yardcheck-0.0.2 lib/yardcheck/source_lines.rb
yardcheck-0.0.1 lib/yardcheck/source_lines.rb