From: imranwebpost@...
Date: 2015-01-07T07:54:48+00:00
Subject: [ruby-core:67380] [ruby-trunk - Bug #10703] Invalid Dates Bug Patch
Issue #10703 has been updated by Imran "".
Akira Tanaka:
I've highlighted this bug and offered a patch also. I love Ruby a lot. I wish I could say the same about its community.
Tsuyoshi Sawada:
It is a working solution. Instead of trolling, share your ingenious alternative.
----------------------------------------
Bug #10703: Invalid Dates Bug Patch
https://bugs.ruby-lang.org/issues/10703#change-50824
* Author: Imran ""
* Status: Rejected
* Priority: Normal
* Assignee:
* Category:
* Target version:
* ruby -v: 2.0.0-p481
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
The following is a pure Ruby-based patch to address the issues raised in Bug 10588 Invalid Dates:
~~~
class SmartTime < Time
def self.mktime year, month, day
case month
when 4, 6, 9, 11
if day == 31
raise ArgumentError, 'argument out of range _ APR, JUNE, SEP, NOV', caller
else
super
end
when 2
case day
when 30, 31
raise ArgumentError, 'argument out of range _ FEB', caller
when 29
if year%100 == 0
if year%400 == 0
super
else
raise ArgumentError, 'argument out of range _ FEB', caller
end
else
if year%4 == 0
super
else
raise ArgumentError, 'argument out of range _ FEB', caller
end
end
else
super
end
else
super
end
end
end
~~~
Another version of this patch with a light-hearted commentary, using the same algorithm but a slightly different approach, is available at: otherimran.wordpress.com
Ruby is a mature, productive programming tool. It���s not a silly toy. It doesn���t deserve to have such dumb bugs lurking inside its core classes.
That���s just me, exercising my right to politely protest the decision made by Ruby maintainers. I hope they would reconsider and fix it internally.
---Files--------------------------------
SmartTime.rb (953 Bytes)
--
https://bugs.ruby-lang.org/