Hank Stoever
part time nerd, part time gnar.

Simply calculating how long an article will take to read

posted almost 4 years ago - 1 min read

A prominent feature on medium.com is the concept of displaying how long it will take to read an article. Here's a screenshot of what it looks like:

medium.com screeshot

This feature is nice because it gives the viewer an easy-to-understand representation of how big an article is. I've gone ahead and adapted that feature on my site as well. Let's look at what it takes to calculate this with code directly taken from this website.

Imagine you have a Post model with a body attribute that represents the contents of the post. Here's a simple way to calculate 'word count':

 def word_count
   body.split.size
 end

This will split body on every space (' ') and return the size of the array. Pretty simple! The next part is calculating how long it will take to read the article. Wikipedia suggests that adults read at about 250-300 words per minute, but we'll use 200 to account for the fact that people read slower on a monitor (also in the Wikipedia article). Here's what the method looks like for 'reading time':

 def reading_time
   (word_count / 200.0).ceil
 end 

It's that simple. Now you too can display 'reading time' on your blog to give your readers an easier gauge of how big an article is.

And this post should have taken you barely more than a minute to read.

comments powered by Disqus