Project

General

Profile

Actions

Feature #21616

open

date ライブラリを deprecated させたい

Added by jinroq (Jinroq SAITOH) 1 day ago. Updated 1 day ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-dev:<unknown>]

Description

概要

date ライブラリが長期間メンテナンスされておらず、機能を time ライブラリに委譲して deprecated させたい

というお話が出ていると風の噂で耳にしましたが、どこまでを考えられているのかご意見をお聞きしたいです。

確認事項

Date._parse を time に移植したい

Time._parse なるものが実現できれば十分でしょうか?(それっぽく移植はしてみました。)

Date.strptime を time に移植したい

date_strptime.c をそのまま time に移植していいものでしょうか?
「time に移植するならついでにこんな感じだと嬉しい」といった要望があったりするのでしょうか?

deprecated させた場合の影響範囲

deprecated はかなりのインパクトであり、様々な gem やプロダクトに影響を及ぼすかと思います。
例えば「Ruby on Rails では誰に相談すべきか」など、どこまでを考慮すべきでしょうか?

Actions #1

Updated by nobu (Nobuyoshi Nakada) 1 day ago

jinroq (Jinroq SAITOH) wrote:

Date._parse を time に移植したい

Time._parse なるものが実現できれば十分でしょうか?(それっぽく移植はしてみました。)

むしろ、あまりにもheuristicすぎるTime.parseこそが廃止したい筆頭ですね。
また、実装面で言うとCとrubyをfuncallとblockで繰り返し行き来するというのも、少なくともVM化した1.9以降では有利とは言えません。

Date.strptime を time に移植したい

date_strptime.c をそのまま time に移植していいものでしょうか?
「time に移植するならついでにこんな感じだと嬉しい」といった要望があったりするのでしょうか?

しばらく前から考えているのが、基準になる時刻はどうせ必要なので、クラスメソッドではなくインスタンスメソッドのほうがいいのではということです。
こんな感じ。

basetime = Time.now
basetime.parse(time_string, format: ["%FT%T%Z", "%F %T %Z", "%+"])

ただ、可能なformatを全部渡すという形だと、省略を許すという記法がないと使いづらいかもという懸念はあります。

deprecated させた場合の影響範囲

deprecated はかなりのインパクトであり、様々な gem やプロダクトに影響を及ぼすかと思います。
例えば「Ruby on Rails では誰に相談すべきか」など、どこまでを考慮すべきでしょうか?

影響範囲などが読めないというのも、なかなか手が進まない理由にあります。

Actions

Also available in: Atom PDF

Like0
Like0