Bug #11037
closedTime Parse Documentation Incorrect - Undefined method getlocal
Description
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
orDateTime
. We can also use our own object.
However, that is not correct:
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:
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
Updated by nkmrya (Yasuhiro Nakamura) over 9 years ago
- File time_parse.patch added
Hi,
I think it is useful Time.parse specifications on the document.
This patch is fix operation to along specifications.
Updated by nobu (Nobuyoshi Nakada) over 9 years ago
md = MyDate.new(28, 10, 2010)
I don't believe that 2010/28/10 is a valid date.
Updated by nkmrya (Yasuhiro Nakamura) over 9 years ago
- File time_parse.patch added
Sory my careless mistake.
I correct mistake in test case.
Updated by nkmrya (Yasuhiro Nakamura) over 9 years ago
- File deleted (
time_parse.patch)
Updated by nkmrya (Yasuhiro Nakamura) over 9 years ago
- File deleted (
time_parse.patch)
Updated by nkmrya (Yasuhiro Nakamura) over 9 years ago
- File time_parse.patch time_parse.patch added
The new patch has passed tests.
Could you review the patch again?
Updated by hsbt (Hiroshi SHIBATA) over 9 years ago
- Status changed from Open to Assigned
- Assignee set to akr (Akira Tanaka)
Updated by citrusmoose (Matt Rice) about 6 years ago
What is the status of this?
Updated by nobu (Nobuyoshi Nakada) about 6 years ago
- Status changed from Assigned to Closed
Applied in changeset trunk|r64975.
Time.parse based from non-Time object
- lib/time.rb (Time.make_time): as the document states, the second
argument ofTime.parse
may be a non-Time
object which does not
havegetlocal
method, assume it is in the local time in the case.
based on the patch by nkmrya (Yasuhiro Nakamura) at
[ruby-core:68775]. [ruby-core:68775] [Bug #11037]
Co-authored-by: nkmrya (Yasuhiro Nakamura) yasuhiro6194@gmail.com