aboutsummaryrefslogtreecommitdiff
path: root/lib/mauve/mauve_time.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mauve/mauve_time.rb')
-rw-r--r--lib/mauve/mauve_time.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/mauve/mauve_time.rb b/lib/mauve/mauve_time.rb
index bf69d1b..504e6ae 100644
--- a/lib/mauve/mauve_time.rb
+++ b/lib/mauve/mauve_time.rb
@@ -9,6 +9,24 @@ module Mauve
self.iso8601
end
+ def to_s_relative(now = MauveTime.now)
+ diff = (self.to_f - now.to_f).to_i
+ case diff
+ when -5184000..-17200 then "in #{-diff/86400} days"
+ when -172799..-3600 then "in #{-diff/3600} hours"
+ when -3599..-300 then "in #{-diff/60} minutes"
+ when -299..-1 then "very soon"
+ when 0..299 then "just now"
+ when 300..3599 then "#{diff/60} minutes ago"
+ when 3600..172799 then "#{diff/3600} hours ago"
+ when 172800..5184000 then "#{diff/86400} days ago"
+ else
+ diff > 518400 ?
+ "#{diff/2592000} months ago" :
+ "in #{-diff/2592000} months"
+ end
+ end
+
end
end