class ReadabilityScore

Public Class Methods

check(filename = "README.md") click to toggle source
# File lib/readability_score.rb, line 7
def self.check(filename = "README.md")
  puts "Checking the contents of #{filename}..."
  fh = open filename
  content = fh.read
  fh.close

  average_readability = Odyssey.ari(content, false)
  coleman_liau = Odyssey.coleman_liau(content, false)
  grade_level = Odyssey.flesch_kincaid_grade_level(content, false)
  readability_ease = Odyssey.flesch_kincaid_reading_ease(content, false)
  gunning_fog = Odyssey.gunning_fog(content, false)
  smog = Odyssey.smog(content, false)
  text = Odyssey.fake_formula(content, true)

  gender_specific_words = ["he", "she", "him", "her"]
    .select { |word|
      text["score"]["words"].include?(word)
    }

  relevant_words = ["readme", "code along", "codealong", "lab", "test"]
    .select { |word|
      text["score"]["words"].include?(word)
    }

  irrelevant_words = ["a", "an", "and", "the", "like", "with", "through", "over", "before", "at", "of", "to", "in", "for", "on", "by", "between", "after", "since", "without", "under", "beyond", "near", "above", "off", "down", "except", "about", "learn", "co", "open", "really", "we're" ]
  word_hash = {}
  text["score"]["words"]
      .select {|word| !irrelevant_words.include?(word.downcase)}
      .each {|word|
        word_hash.key?(word) ? word_hash[word] += 1 :  word_hash[word] = 1
      }

  puts "Automated Readability Index (1 => Kindergarten, 8 => 7th Grade, 14+ => College Level):"
  puts average_readability
  puts ""
  puts "Coleman Liau Index (1 => Kindergarten, 8 => 7th Grade, 14+ => College Level):"
  puts coleman_liau
  puts ""
  puts "Flesch Kincaid Grade Level (1 => Kindergarten, 8 => 7th Grade, 14+ => College Level):"
  puts grade_level
  puts ""
  puts "Flesch Kincaid Reading Ease (100.0-90.0 => 5th Grade, 80.0-70.0 => 7th Grade, 50.0-30.0 => College Level):"
  puts readability_ease
  puts ""
  puts "Gunning Fog Index (7 => 7th grade, 10 => 10th Grade, 13-16 => College Level):"
  puts gunning_fog
  puts ""
  puts "Smog Index (7 => 7th grade, 10 => 10th Grade, 13-16 => College Level):"
  puts smog
  puts ""

  puts "Gender specific words: #{gender_specific_words}"
end