From 2a3d5d661ce2cadad50aa5d72b54e134da54f5f3 Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Sat, 13 Nov 2021 07:44:46 +0900 Subject: [PATCH] Use `Primitive.mandatory_only?` for `Time.at` --- time.c | 6 ++++++ timev.rb | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/time.c b/time.c index 44864ff748..9c23089cfd 100644 --- a/time.c +++ b/time.c @@ -2708,6 +2708,12 @@ time_s_at(rb_execution_context_t *ec, VALUE klass, VALUE time, VALUE subsec, VAL return t; } +static VALUE +time_s_at1(rb_execution_context_t *ec, VALUE klass, VALUE time) +{ + return time_s_at(ec, klass, time, Qfalse, ID2SYM(id_microsecond), Qnil); +} + static const char months[][4] = { "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec", diff --git a/timev.rb b/timev.rb index a475fc482d..675b54faf6 100644 --- a/timev.rb +++ b/timev.rb @@ -268,7 +268,11 @@ class Time # :include: doc/time/in.rdoc # def self.at(time, subsec = false, unit = :microsecond, in: nil) - Primitive.time_s_at(time, subsec, unit, Primitive.arg!(:in)) + if Primitive.mandatory_only? + Primitive.time_s_at1(time) + else + Primitive.time_s_at(time, subsec, unit, Primitive.arg!(:in)) + end end # Returns a new \Time object based the on given arguments.