Module: HumanSpeakable

Defined in:
lib/human_speakable.rb

Class Method Summary collapse

Class Method Details

.format_date(date, year = false) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/human_speakable.rb', line 21

def self.format_date(date, year=false)
      
  s = case (date - Date.today).to_i
  when (0)     then 'today'
  when (1)     then 'tomorrow'      
  when (2..6)  then 'this ' + Date::DAYNAMES[date.wday]
  when (7..10) then 'next ' + Date::DAYNAMES[date.wday]
  when (11..14) 
    ['next', Date::DAYNAMES[date.wday], 'the', (date.day.ordinal), 'of', 
      Date::MONTHNAMES[date.month]].join(' ')                         
  when (15..21)
    [Date::DAYNAMES[date.wday], 'the', (date.day.ordinal), 'of', 
      Date::MONTHNAMES[date.month]].join(' ')      
  else
    ['on the', (date.day.ordinal), 'of', 
      Date::MONTHNAMES[date.month]].join(' ')      
  end
  
  year ? s + ' ' + date.year.to_s : s
end

.format_time(time) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'lib/human_speakable.rb', line 42

def self.format_time(time)    
  
  h, m, meridiem = time.strftime("%-I %M %P").split
  a = [h]
  a << ':' + m unless m == '00'
  a << ' ' + meridiem    
  a.join()
  
end