From: yasuhiro6194@... Date: 2015-07-05T05:58:59+00:00 Subject: [ruby-core:69876] [Ruby trunk - Bug #11037] Time Parse Documentation Incorrect - Undefined method getlocal Issue #11037 has been updated by Yasuhiro NAKAMURA. 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. ---------------------------------------- Bug #11037: Time Parse Documentation Incorrect - Undefined method getlocal https://bugs.ruby-lang.org/issues/11037#change-53291 * 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:
irb(main):010:0> Time.parse('12:30 AM', Date.today)
NoMethodError: undefined method `getlocal' for #
        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 `
'
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-------------------------------- time_parse.patch (1.3 KB) -- https://bugs.ruby-lang.org/