Sha256: f60e4fde3640133514bc757078baccd3bd200c7fc5b0623c2ae7fea21794a3b8
Contents?: true
Size: 1.37 KB
Versions: 2
Compression:
Stored size: 1.37 KB
Contents
require "jekyll/timeago/version" require "active_support/inflector" module Jekyll module Timeago DAYS_IN = { :days => 1, :weeks => 7, :months => 31, :years => 365, } def timeago(input) time_ago_to_now(input) end private def time_ago_to_now(date) unless date.is_a?(Date) || date.is_a?(Time) raise "Invalid input: #{date.inspect}" end days_passed = (Date.today - Date.parse(date.to_s)).to_i case days_passed.abs when 0 .. 7 time_ago_to_s(days_passed, :days) when 8 .. 31 time_ago_to_s(days_passed, :weeks) when 32 .. 365 time_ago_to_s(days_passed, :months) else time_ago_to_s(days_passed, :years) end end def time_ago_to_s(days_passed, grouped_by) return "today" if days_passed == 0 return "yesterday" if days_passed == 1 return "tomorrow" if days_passed == -1 future = days_passed < 0 computed_range = days_passed.abs / Jekyll::Timeago::DAYS_IN[grouped_by] grouped_by = if computed_range == 1 ActiveSupport::Inflector.singularize(grouped_by.to_s) else grouped_by.to_s end if future "in #{computed_range} #{grouped_by}" else "#{computed_range} #{grouped_by} ago" end end end end Liquid::Template.register_filter(Jekyll::Timeago)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jekyll-timeago-0.3.1 | lib/jekyll/timeago.rb |
jekyll-timeago-0.3.0 | lib/jekyll/timeago.rb |