[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...

Issue #11420 has been reported by Koichi Sasada.

11 messages 2015/08/06

[ruby-core:70471] [Ruby trunk - Bug #11037] Time Parse Documentation Incorrect - Undefined method getlocal

From: yasuhiro6194@...
Date: 2015-08-20 05:47:39 UTC
List: ruby-core #70471
Issue #11037 has been updated by Yasuhiro NAKAMURA.

File time_parse.patch added

Sory my careless mistake. 
I correct mistake in test case.

----------------------------------------
Bug #11037: Time Parse Documentation Incorrect - Undefined method getlocal
https://bugs.ruby-lang.org/issues/11037#change-53875

* 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)
time_parse.patch (1.3 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next