lib/lumberjack/formatter/date_time_formatter.rb
# frozen_string_literal: true
module Lumberjack
class Formatter
# Format a Date, Time, or DateTime object. If you don't specify a format in the constructor,
# it will use the ISO-8601 format.
class DateTimeFormatter
attr_reader :format
# @param [String] format The format to use when formatting the date/time object.
def initialize(format = nil)
@format = format.dup.to_s.freeze unless format.nil?
end
def call(obj)
if @format && obj.respond_to?(:strftime)
obj.strftime(@format)
elsif obj.respond_to?(:iso8601)
obj.iso8601
else
obj.to_s
end
end
end
end
end