Method: Spider::I18n::Rails#localize_date_time

Defined in:
lib/spiderfw/i18n/rails.rb

#localize_date_time(locale, object, format = :default, options = {}) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/spiderfw/i18n/rails.rb', line 48

def localize_date_time(locale, object, format = :default, options={})
    l = @locale_data
    type = object.respond_to?(:sec) ? 'time' : 'date'
    formats = l["#{type}.formats"]
    format = formats[format.to_s] if formats && formats[format.to_s]
    raise "Format #{format} not found" unless format

    format = format.to_s.dup

    format.gsub!(/%a/, l['date.abbr_day_names'][object.wday])
    format.gsub!(/%A/, l["date.day_names"][object.wday])
    format.gsub!(/%b/, l["date.abbr_month_names"][object.mon])
    format.gsub!(/%B/, l["date.month_names"][object.mon])
    format.gsub!(/%p/, l["time.#{object.hour < 12 ? :am : :pm}"]) if object.respond_to? :hour
    object.strftime(format)
end