From: merch-redmine@... Date: 2019-07-24T15:17:40+00:00 Subject: [ruby-core:93903] [Ruby master Bug#11935] Date.new returns inconsistent errors when passed invalid arguments Issue #11935 has been updated by jeremyevans0 (Jeremy Evans). Assignee deleted (matz (Yukihiro Matsumoto)) I agree that we should make these errors consistent and have submitted a pull request to do so: https://github.com/ruby/date/pull/9 ---------------------------------------- Bug #11935: Date.new returns inconsistent errors when passed invalid arguments https://bugs.ruby-lang.org/issues/11935#change-79949 * Author: CJKinni (Christopher Kinniburgh) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.4.0dev * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- When passed invalid data, such as floats and nil values, the Date.new function returns a variety of results that aren't particularly easy to read and understand. The 'undefined method 'div' for nil:NilClass' is particularly unhelpful. ~~~ irb(main):002:0> Date.new(1,nil,1) TypeError: no implicit conversion from nil to integer irb(main):003:0> Date.new(1,1,nil) NoMethodError: undefined method `div' for nil:NilClass irb(main):004:0> Date.new(nil,1,1) NoMethodError: undefined method `<' for nil:NilClass ~~~ I have attached a potential fix. It returns a more consistent set of "invalid day", "invalid month", and "invalid year" argument errors. ---Files-------------------------------- date-new-argument-errors.patch (1.14 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>