36 lines
821 B
Ruby
36 lines
821 B
Ruby
module Locomotive
|
|
module Liquid
|
|
module Filters
|
|
module Date
|
|
|
|
def localized_date(input, *args)
|
|
format, locale = args[0], args[1] rescue 'en'
|
|
|
|
return input.to_s if format.to_s.empty?
|
|
|
|
if input.is_a?(String)
|
|
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
|
|
else
|
|
date = input
|
|
end
|
|
|
|
if date.respond_to?(:strftime)
|
|
I18n.locale = locale
|
|
I18n.l date, :format => format
|
|
else
|
|
input
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
::Liquid::Template.register_filter(Date)
|
|
end
|
|
end
|
|
end
|