🐥
[bugs.ruby][Feature #20298] Time へキャストする Time() を追加する提案
[Feature #20298] Introduce Time()
type-cast / constructor.
-
Time
へのキャストを行うTime()
メソッドを追加する提案-
Integer()
やFloat()
などと同じようなメソッド
-
- 実装イメージは以下のような感じ
def Time(value)
case value
when Time
value
when Integer
Time.at(value)
when String # `Time#to_s` の結果を受け取ることを想定
Time.new(value)
else
value.to_time
end
end
- 背景としては JSOIN をシリアライズ化したときに利用したいらしい
data = fetch_job_data
job = @coder.load(data)
scheduled_at = Time(job[:scheduled_at]) # ここで Time に復元するときに利用したい
- これに対して
ClassName()
を追加するのは反対するコメントもされてます- https://bugs.ruby-lang.org/issues/20298#note-2
-
ClassName.coerce()
の方がより Ruby として自然とも書いてあります
Discussion