class JekyllRecker::Generators::Stats

Stats Generator

Attributes

site[R]

Public Instance Methods

generate(site) click to toggle source
# File lib/jekyll_recker/generators.rb, line 14
def generate(site)
  @site = Site.new(site)
  info 'calculating statistics'
  site.data['stats'] = stats
end
stats() click to toggle source
# File lib/jekyll_recker/generators.rb, line 20
def stats
  @stats ||= {
    'total_words' => total(site.word_counts),
    'average_words' => average(site.word_counts),
    'total_posts' => site.entries.size,
    'consecutive_posts' => calculate_streaks(site.dates).first['days'],
    'swears' => calculate_swears
  }
end

Private Instance Methods

calculate_swears() click to toggle source
# File lib/jekyll_recker/generators.rb, line 32
def calculate_swears
  results = Hash[count_swears]
  results['total'] = total(results.values)
  results
end
count_swears() click to toggle source
# File lib/jekyll_recker/generators.rb, line 38
def count_swears
  occurences(swears, site.words).reject { |_k, v| v.zero? }.sort_by { |_k, v| -v }
end
swears() click to toggle source
# File lib/jekyll_recker/generators.rb, line 42
def swears
  site.recker_config.fetch('swears', [])
end