Module: Timeliness::Helpers

Included in:
Format
Defined in:
lib/timeliness/helpers.rb

Instance Method Summary collapse

Instance Method Details

#abbr_month_namesObject



33
34
35
# File 'lib/timeliness/helpers.rb', line 33

def abbr_month_names
  i18n_loaded? ? I18n.t('date.abbr_month_names') : Date::ABBR_MONTHNAMES
end

#full_hour(hour, meridian) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/timeliness/helpers.rb', line 4

def full_hour(hour, meridian)
  hour = hour.to_i
  return hour if meridian.nil?
  if meridian.delete('.').downcase == 'am'
    raise(ArgumentError) if hour == 0 || hour > 12
    hour == 12 ? 0 : hour
  else
    hour == 12 ? hour : hour + 12
  end
end

#i18n_loaded?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/timeliness/helpers.rb', line 48

def i18n_loaded?
  defined?(I18n)
end

#microseconds(usec) ⇒ Object



37
38
39
# File 'lib/timeliness/helpers.rb', line 37

def microseconds(usec)
  (".#{usec}".to_f * 1_000_000).to_i
end

#month_index(month) ⇒ Object



24
25
26
27
# File 'lib/timeliness/helpers.rb', line 24

def month_index(month)
  return month.to_i if month.to_i > 0 || /0+/ =~ month
  (month.length > 3 ? month_names : abbr_month_names).index { |str| month.casecmp?(str) }
end

#month_namesObject



29
30
31
# File 'lib/timeliness/helpers.rb', line 29

def month_names
  i18n_loaded? ? I18n.t('date.month_names') : Date::MONTHNAMES
end

#offset_in_seconds(offset) ⇒ Object



41
42
43
44
45
46
# File 'lib/timeliness/helpers.rb', line 41

def offset_in_seconds(offset)
  sign = offset =~ /^-/ ? -1 : 1
  parts = offset.scan(/\d\d/).map {|p| p.to_f }
  parts[1] = parts[1].to_f / 60
  (parts[0] + parts[1]) * sign * 3600
end

#unambiguous_year(year) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/timeliness/helpers.rb', line 15

def unambiguous_year(year)
  if year.length <= 2
    century = Time.now.year.to_s[0..1].to_i
    century -= 1 if year.to_i >= Timeliness.configuration.ambiguous_year_threshold
    year = "#{century}#{year.rjust(2,'0')}"
  end
  year.to_i
end