class Blueprinter::DateTimeFormatter

def format(value, options)

def format(value, options)
  return value if value.nil?
  field_format = options[:datetime_format]
  if value.respond_to?(:strftime)
    value = format_datetime(value, field_format)
  elsif field_format
    raise InvalidDateTimeFormatterError, 'Cannot format invalid DateTime object'
  end
  value
end

def format_datetime(value, field_format)

def format_datetime(value, field_format)
  format = field_format || Blueprinter.configuration.datetime_format
  case format
  when NilClass then value
  when Proc then format.call(value)
  when String then value.strftime(format)
  else
    raise InvalidDateTimeFormatterError, "Cannot format DateTime object with invalid formatter: #{format.class}"
  end
end