lib/active_support/duration.rb in activesupport-8.0.0.beta1 vs lib/active_support/duration.rb in activesupport-8.0.0.rc1
- old
+ new
@@ -489,20 +489,24 @@
end
if @parts.empty?
time.since(sign * value)
else
- @parts.inject(time) do |t, (type, number)|
- if type == :seconds
- t.since(sign * number)
- elsif type == :minutes
- t.since(sign * number * 60)
- elsif type == :hours
- t.since(sign * number * 3600)
- else
- t.advance(type => sign * number)
- end
+ @parts.each do |type, number|
+ t = time
+ time =
+ if type == :seconds
+ t.since(sign * number)
+ elsif type == :minutes
+ t.since(sign * number * 60)
+ elsif type == :hours
+ t.since(sign * number * 3600)
+ else
+ t.advance(type => sign * number)
+ end
end
+
+ time
end
end
def respond_to_missing?(method, _)
value.respond_to?(method)