Project

General

Profile

Bug #10703

Invalid Dates Bug Patch

Added by NorthernLights (Imran "") almost 5 years ago. Updated almost 5 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:67373]

Description

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) SmartTime.rb NorthernLights (Imran ""), 01/07/2015 03:43 AM

Related issues

Is duplicate of Ruby master - Bug #10588: Invalid DatesRejected12/11/2014Actions

History

Updated by akr (Akira Tanaka) almost 5 years ago

Updated by akr (Akira Tanaka) almost 5 years ago

  • Status changed from Open to Rejected

Don't create a new ticket for a patch.
Use the original ticket, [Bug #10588], you reported.

Updated by NorthernLights (Imran "") almost 5 years ago

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.

Updated by nobu (Nobuyoshi Nakada) almost 5 years ago

  • Description updated (diff)

Also available in: Atom PDF