Project

General

Profile

Feature #10040

`%d` and `%t` shorthands for `Date.new(*args)` and `Time.new(*args)`

Added by nathan.f77 (Nathan Broadbent) about 6 years ago. Updated about 6 years ago.

Status:
Feedback
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:63751]

Description

I'm working on a Ruby application where we have to deal with a lot of dates and times, especially in our test suite. We currently have a couple thousand cases of Date.new(...), and I'm finding the syntax to be a little unwieldy.

What do you think about the following shorthand suggestions?

%d(2014, 7, 15)                 # Equivalent to: Date.new(2014, 7, 15)
%t(2014, 7, 15, 12, 58, 45)     # Equivalent to: Time.new(2014, 7, 15, 12, 58, 45)

I added commas because I think the syntax should also support variables:

year = 2014
month = 7
%d(year, month, 15)             # Equivalent to: Date.new(year, month, 15)

I understand that this will operate a bit differently to %w and %i, but I think that supporting variable evaluation would be a lot more useful.

An alternative proposal would be to add [] methods to Date and Time, so that we could call:

Date[2014, 7, 15]
Time[2014, 7, 15, 12, 58, 43]

This would be still be a little shorter and nicer to use. Please let me know if you would like me to open a feature ticket for Date.[] and Time.[] methods, instead.

Please let me know your thoughts. Would you find a shorter date/time syntax useful?

Also available in: Atom PDF