engine/lib/locomotive/liquid/filters/date.rb

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