class Time

def at_with_coercion(*args)

instances can be used when called with a single argument
Layers additional behavior on Time.at so that ActiveSupport::TimeWithZone and DateTime
def at_with_coercion(*args)
  return at_without_coercion(*args) if args.size != 1
  # Time.at can be called with a time or numerical value
  time_or_number = args.first
  if time_or_number.is_a?(ActiveSupport::TimeWithZone) || time_or_number.is_a?(DateTime)
    at_without_coercion(time_or_number.to_f).getlocal
  else
    at_without_coercion(time_or_number)
  end
end