-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support timezone object argument to Time.{at,new} and Time#{getlocal,localtime} #3740
base: master
Are you sure you want to change the base?
Conversation
…localtime} closes oracle#1717 For compatibility with https://bugs.ruby-lang.org/issues/14850 Co-authored-by: Manef Zahra <[email protected]> Co-authored-by: Patrick Lin <[email protected]>
Expected TypeError ((?-mix:can't convert \w+ into an exact number)) but got: TypeError (wrong argument type Object (expected Integer))
> Expected TypeError ((?-mix:can't convert \w+ into an exact number)) > but got: TypeError (wrong argument type Object (expected Integer)) close enough
In CRuby this spec passes because it is a Time-Like object (Time::tm) that defines to_time. We are using an actual Time object here so we need the method for the spec to pass.
Thank you! Will review the PR at this a bit later. |
Wondering what logic is behind the offset = as_local.utc_offset.nonzero? || as_local.to_i - time.to_i It seems to me it should use either |
…annot be converted into numeric
…stance of Time and take into account #utc_offset
Originally I seemed to need it... I had to fight a bit with the implementation to make the specs pass because of this trick that happens in the specs: Probably once the implementation was right it wasn't needed any more. The whole thing was a bit confusing. We discovered that in CRuby there's a whole hidden class that gets used for this purpose ( Thanks for investigating this and improving it! |
This adds (at least some) support for the "Timezone Objects" interfaces to several
Time
methods as described inhttps://docs.ruby-lang.org/en/3.3/Time.html#class-Time-label-Timezone+Objects
It was difficult to discern how it all should work but between the CRuby source code and the specs (and tracing what methods were being called on our objects) I think we figured it out.
We started this six months ago as part of HackDays and didn't get very far, then I resurrected it this week.
closes #1717