Module: Fuzzytime

Defined in:
lib/fuzzytime.rb,
lib/fuzzytime/version.rb

Overview

require “fuzzytime/version”

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.fuzzy_time(t = Time.now) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/fuzzytime.rb', line 5

def self.fuzzy_time(t = Time.now)

  min = t.min
  hour = t.hour

  case min
  when 0
  when 1..30
    rel = "past"
    min = min
  when 31..59
    rel = "til"
    min = 60 - min
    hour = (hour + 1) % 24
  end
  
  min = "quarter" if min == 15
  min = "half" if min == 30

  case hour
  when 0
    hour = "midnight"
  when 12
    hour = "noon"
  else
    hour = hour % 12
    suffix = t.min.zero? && hour.is_a?(Integer) ? "o'clock" : ""
    min = nil if t.min.zero?
  end

  "#{min} #{rel} #{hour} #{suffix}".strip
end