2010-07-23 20:09:54 +00:00
|
|
|
module Locomotive
|
|
|
|
module Liquid
|
|
|
|
module Filters
|
2010-05-30 23:57:33 +00:00
|
|
|
module Date
|
2010-07-23 20:09:54 +00:00
|
|
|
|
2010-05-30 23:57:33 +00:00
|
|
|
def localized_date(input, *args)
|
2011-01-11 11:42:12 +00:00
|
|
|
format, locale = args[0], args[1] rescue 'en'
|
2010-07-23 20:09:54 +00:00
|
|
|
|
2011-01-10 23:50:42 +00:00
|
|
|
return input.to_s if format.to_s.empty?
|
2010-07-23 20:09:54 +00:00
|
|
|
|
2011-01-10 23:50:42 +00:00
|
|
|
if input.is_a?(String)
|
2011-01-11 11:42:12 +00:00
|
|
|
begin
|
|
|
|
fragments = ::Date._strptime(input, I18n.t('date.formats.default'))
|
|
|
|
date = ::Date.new(fragments[:year], fragments[:mon], fragments[:mday])
|
|
|
|
rescue
|
|
|
|
date = Time.parse(input)
|
|
|
|
end
|
2011-01-10 23:50:42 +00:00
|
|
|
else
|
|
|
|
date = input
|
2010-05-30 23:57:33 +00:00
|
|
|
end
|
2010-07-23 20:09:54 +00:00
|
|
|
|
2010-05-30 23:57:33 +00:00
|
|
|
if date.respond_to?(:strftime)
|
|
|
|
I18n.locale = locale
|
|
|
|
I18n.l date, :format => format
|
|
|
|
else
|
|
|
|
input
|
|
|
|
end
|
|
|
|
end
|
2010-07-23 20:09:54 +00:00
|
|
|
|
2010-05-30 23:57:33 +00:00
|
|
|
end
|
2010-07-23 20:09:54 +00:00
|
|
|
|
|
|
|
::Liquid::Template.register_filter(Date)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|