class ReadmeLinter

Public Class Methods

collect_lines(file) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 22
def self.collect_lines(file)
  lines = {}
  File.foreach(file) do |line_content|
    lines["#{$.}"] = line_content
  end
  lines
end
error_free?(learn_error) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 51
def self.error_free?(learn_error)
  learn_error.valid_readme[:message].empty?
end
green_light(learn_error) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 12
def self.green_light(learn_error)
  learn_error.readme_error[:valid_readme] = true
  learn_error.valid_readme = {message: "valid readme", color: :green}
end
has_code_snippets?(file) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 17
def self.has_code_snippets?(file)
  file_content = File.open(file).read
  file_content.match(/``/)
end
lint_lines(lines, learn_error) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 35
def self.lint_lines(lines, learn_error)
  lines.each do |line_num, line_content|
    if line_content.match(/``/)
      if !(line_content.match(/^```(ruby|rb|bash|sh|swift|html|erb|js|javascript|objc|java|sql|css|text|python)?$/)) 
        learn_error.valid_readme[:message] << "INVALID CODE SNIPPET - line #{line_num}: #{line_content}"
      end
    end
  end
end
parse_file(file, learn_error) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 3
def self.parse_file(file, learn_error)
  if has_code_snippets?(file)
    lines = collect_lines(file)
    validate_snippets(lines, learn_error)
  else
     green_light(learn_error)
  end
end
total_errors?(learn_error) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 45
def self.total_errors?(learn_error)
  if error_free?(learn_error)
      green_light(learn_error)
  end
end
validate_snippets(lines, learn_error) click to toggle source
# File lib/learn-tool/readme-linter.rb, line 30
def self.validate_snippets(lines, learn_error)
  lint_lines(lines, learn_error)
  total_errors?(learn_error)
end