method_missing(sym, *args, &block) public Send the missing method to time instance, and wrap result in a new TimeWithZone with the existing time_zone.
Show source def method_missing(sym, *args, &block) result = time.__send__(sym, *args, &block) result.acts_like?(:time) ? self.class.new(nil, time_zone, result) : result end