[#70843] Re: [ruby-cvs:58952] hsbt:r51801 (trunk): * lib/rubygems: Update to RubyGems HEAD(fe61e4c112). — Eric Wong <normalperson@...>
hsbt@ruby-lang.org wrote:
3 messages
2015/09/17
[ruby-core:70672] [Ruby trunk - Bug #11037] Time Parse Documentation Incorrect - Undefined method getlocal
From:
yasuhiro6194@...
Date:
2015-09-06 02:12:43 UTC
List:
ruby-core #70672
Issue #11037 has been updated by Yasuhiro NAKAMURA.
File time_parse.patch added
The new patch has passed tests.
Could you review the patch again?
----------------------------------------
Bug #11037: Time Parse Documentation Incorrect - Undefined method getlocal
https://bugs.ruby-lang.org/issues/11037#change-54066
* Author: Charlie Savage
* Status: Open
* Priority: Normal
* Assignee:
* ruby -v: ruby 2.2.1p85 (2015-02-26 revision 49769) [x64-mingw32]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
According to:
http://ruby-doc.org/stdlib-2.2.1/libdoc/time/rdoc/Time.html
`Time#parse` can take a 2nd parameter:
> We can change the date used to infer our missing elements by passing a second object that responds to mon, day and year, such as `Date`, `Time` or `DateTime`. We can also use our own object.
However, that is not correct:
~~~ruby
irb(main):010:0> Time.parse('12:30 AM', Date.today)
NoMethodError: undefined method `getlocal' for #<Date: 2015-04-07 ((2457120j,0s,0n),+0s,2299161j)>
from C:/mingw64/mingw64/local/ruby/lib/ruby/2.2.0/time.rb:262:in `make_time'
from C:/mingw64/mingw64/local/ruby/lib/ruby/2.2.0/time.rb:364:in `parse'
from (irb):10
from C:/mingw64/mingw64/local/ruby/bin/irb:11:in `<main>'
~~~
The problem is in `Time#make_time`, lines 259 through 263:
~~~ruby
if off
now = now.getlocal(off) if now.utc_offset != off
else
now = now.getlocal
end
~~~
The behavior the documentation does seem desirable, so the code above should check if the now parameter responds to `getlocal` or not (only `Time` does, `Date` and `DateTime` do not). Or of course the documentation should be updated to specify that a time object must be passed as the now parameter.
---Files--------------------------------
time_parse.patch (1.3 KB)
--
https://bugs.ruby-lang.org/