date 3.0.1 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/ext/date/date_core.c +296 -88
 - metadata +7 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: d8e8e4c427833f2948ff528def0a31d95b84f1fa977afef755e9fb086ac8c84f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f0f4c810b24a50a1b3b6d766b34099b1dcecaee43bb0bac57c8ea818b2c8626d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 5935548cb2bcf6eb8cb9f46275add4120033355c43c374722bc10be2cb30e90eedfae3333578687fa6a1ba2f10085ca83dea30fa32c3e75f3e347a770a203820
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 11fd276dae330c4f6b437e9331b779875ac5ceb05929ab6204b04abcaed107e25421fc6ed32c5b4f58e884972318efef1bf761095a33cc32b1efedf5091ad320
         
     | 
    
        data/ext/date/date_core.c
    CHANGED
    
    | 
         @@ -4322,12 +4322,37 @@ date_s_strptime(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4322 
4322 
     | 
    
         | 
| 
       4323 
4323 
     | 
    
         
             
            VALUE date__parse(VALUE str, VALUE comp);
         
     | 
| 
       4324 
4324 
     | 
    
         | 
| 
      
 4325 
     | 
    
         
            +
            static size_t
         
     | 
| 
      
 4326 
     | 
    
         
            +
            get_limit(VALUE opt)
         
     | 
| 
      
 4327 
     | 
    
         
            +
            {
         
     | 
| 
      
 4328 
     | 
    
         
            +
                if (!NIL_P(opt)) {
         
     | 
| 
      
 4329 
     | 
    
         
            +
                    VALUE limit = rb_hash_aref(opt, ID2SYM(rb_intern("limit")));
         
     | 
| 
      
 4330 
     | 
    
         
            +
                    if (NIL_P(limit)) return SIZE_MAX;
         
     | 
| 
      
 4331 
     | 
    
         
            +
                    return NUM2SIZET(limit);
         
     | 
| 
      
 4332 
     | 
    
         
            +
                }
         
     | 
| 
      
 4333 
     | 
    
         
            +
                return 128;
         
     | 
| 
      
 4334 
     | 
    
         
            +
            }
         
     | 
| 
      
 4335 
     | 
    
         
            +
             
     | 
| 
      
 4336 
     | 
    
         
            +
            static void
         
     | 
| 
      
 4337 
     | 
    
         
            +
            check_limit(VALUE str, VALUE opt)
         
     | 
| 
      
 4338 
     | 
    
         
            +
            {
         
     | 
| 
      
 4339 
     | 
    
         
            +
                StringValue(str);
         
     | 
| 
      
 4340 
     | 
    
         
            +
                size_t slen = RSTRING_LEN(str);
         
     | 
| 
      
 4341 
     | 
    
         
            +
                size_t limit = get_limit(opt);
         
     | 
| 
      
 4342 
     | 
    
         
            +
                if (slen > limit) {
         
     | 
| 
      
 4343 
     | 
    
         
            +
            	rb_raise(rb_eArgError,
         
     | 
| 
      
 4344 
     | 
    
         
            +
            		 "string length (%"PRI_SIZE_PREFIX"u) exceeds the limit %"PRI_SIZE_PREFIX"u", slen, limit);
         
     | 
| 
      
 4345 
     | 
    
         
            +
                }
         
     | 
| 
      
 4346 
     | 
    
         
            +
            }
         
     | 
| 
      
 4347 
     | 
    
         
            +
             
     | 
| 
       4325 
4348 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4326 
4349 
     | 
    
         
             
            date_s__parse_internal(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4327 
4350 
     | 
    
         
             
            {
         
     | 
| 
       4328 
     | 
    
         
            -
                VALUE vstr, vcomp, hash;
         
     | 
| 
      
 4351 
     | 
    
         
            +
                VALUE vstr, vcomp, hash, opt;
         
     | 
| 
       4329 
4352 
     | 
    
         | 
| 
       4330 
     | 
    
         
            -
                rb_scan_args(argc, argv, "11", &vstr, &vcomp);
         
     | 
| 
      
 4353 
     | 
    
         
            +
                rb_scan_args(argc, argv, "11:", &vstr, &vcomp, &opt);
         
     | 
| 
      
 4354 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
      
 4355 
     | 
    
         
            +
                check_limit(vstr, opt);
         
     | 
| 
       4331 
4356 
     | 
    
         
             
                StringValue(vstr);
         
     | 
| 
       4332 
4357 
     | 
    
         
             
                if (!rb_enc_str_asciicompat_p(vstr))
         
     | 
| 
       4333 
4358 
     | 
    
         
             
            	rb_raise(rb_eArgError,
         
     | 
| 
         @@ -4342,7 +4367,7 @@ date_s__parse_internal(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4342 
4367 
     | 
    
         | 
| 
       4343 
4368 
     | 
    
         
             
            /*
         
     | 
| 
       4344 
4369 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4345 
     | 
    
         
            -
             *    Date._parse(string[, comp=true])  ->  hash
         
     | 
| 
      
 4370 
     | 
    
         
            +
             *    Date._parse(string[, comp=true], limit: 128)  ->  hash
         
     | 
| 
       4346 
4371 
     | 
    
         
             
             *
         
     | 
| 
       4347 
4372 
     | 
    
         
             
             * Parses the given representation of date and time, and returns a
         
     | 
| 
       4348 
4373 
     | 
    
         
             
             * hash of parsed elements.  This method does not function as a
         
     | 
| 
         @@ -4353,6 +4378,10 @@ date_s__parse_internal(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4353 
4378 
     | 
    
         
             
             * it full.
         
     | 
| 
       4354 
4379 
     | 
    
         
             
             *
         
     | 
| 
       4355 
4380 
     | 
    
         
             
             *    Date._parse('2001-02-03')	#=> {:year=>2001, :mon=>2, :mday=>3}
         
     | 
| 
      
 4381 
     | 
    
         
            +
             *
         
     | 
| 
      
 4382 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4383 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4384 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4356 
4385 
     | 
    
         
             
             */
         
     | 
| 
       4357 
4386 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4358 
4387 
     | 
    
         
             
            date_s__parse(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
         @@ -4362,7 +4391,7 @@ date_s__parse(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4362 
4391 
     | 
    
         | 
| 
       4363 
4392 
     | 
    
         
             
            /*
         
     | 
| 
       4364 
4393 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4365 
     | 
    
         
            -
             *    Date.parse(string='-4712-01-01'[, comp=true[, start=Date::ITALY]])  ->  date
         
     | 
| 
      
 4394 
     | 
    
         
            +
             *    Date.parse(string='-4712-01-01'[, comp=true[, start=Date::ITALY]], limit: 128)  ->  date
         
     | 
| 
       4366 
4395 
     | 
    
         
             
             *
         
     | 
| 
       4367 
4396 
     | 
    
         
             
             * Parses the given representation of date and time, and creates a
         
     | 
| 
       4368 
4397 
     | 
    
         
             
             * date object.  This method does not function as a validator.
         
     | 
| 
         @@ -4374,13 +4403,18 @@ date_s__parse(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4374 
4403 
     | 
    
         
             
             *    Date.parse('2001-02-03')		#=> #<Date: 2001-02-03 ...>
         
     | 
| 
       4375 
4404 
     | 
    
         
             
             *    Date.parse('20010203')		#=> #<Date: 2001-02-03 ...>
         
     | 
| 
       4376 
4405 
     | 
    
         
             
             *    Date.parse('3rd Feb 2001')	#=> #<Date: 2001-02-03 ...>
         
     | 
| 
      
 4406 
     | 
    
         
            +
             *
         
     | 
| 
      
 4407 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4408 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4409 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4377 
4410 
     | 
    
         
             
             */
         
     | 
| 
       4378 
4411 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4379 
4412 
     | 
    
         
             
            date_s_parse(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4380 
4413 
     | 
    
         
             
            {
         
     | 
| 
       4381 
     | 
    
         
            -
                VALUE str, comp, sg;
         
     | 
| 
      
 4414 
     | 
    
         
            +
                VALUE str, comp, sg, opt;
         
     | 
| 
       4382 
4415 
     | 
    
         | 
| 
       4383 
     | 
    
         
            -
                rb_scan_args(argc, argv, "03", &str, &comp, &sg);
         
     | 
| 
      
 4416 
     | 
    
         
            +
                rb_scan_args(argc, argv, "03:", &str, &comp, &sg, &opt);
         
     | 
| 
      
 4417 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       4384 
4418 
     | 
    
         | 
| 
       4385 
4419 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       4386 
4420 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -4392,11 +4426,12 @@ date_s_parse(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4392 
4426 
     | 
    
         
             
                }
         
     | 
| 
       4393 
4427 
     | 
    
         | 
| 
       4394 
4428 
     | 
    
         
             
                {
         
     | 
| 
       4395 
     | 
    
         
            -
             
     | 
| 
       4396 
     | 
    
         
            -
             
     | 
| 
       4397 
     | 
    
         
            -
             
     | 
| 
       4398 
     | 
    
         
            -
             
     | 
| 
       4399 
     | 
    
         
            -
             
     | 
| 
      
 4429 
     | 
    
         
            +
                    int argc2 = 2;
         
     | 
| 
      
 4430 
     | 
    
         
            +
            	VALUE argv2[3];
         
     | 
| 
      
 4431 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 4432 
     | 
    
         
            +
                    argv2[1] = comp;
         
     | 
| 
      
 4433 
     | 
    
         
            +
                    if (!NIL_P(opt)) argv2[argc2++] = opt;
         
     | 
| 
      
 4434 
     | 
    
         
            +
            	VALUE hash = date_s__parse(argc2, argv2, klass);
         
     | 
| 
       4400 
4435 
     | 
    
         
             
            	return d_new_by_frags(klass, hash, sg);
         
     | 
| 
       4401 
4436 
     | 
    
         
             
                }
         
     | 
| 
       4402 
4437 
     | 
    
         
             
            }
         
     | 
| 
         @@ -4410,19 +4445,28 @@ VALUE date__jisx0301(VALUE); 
     | 
|
| 
       4410 
4445 
     | 
    
         | 
| 
       4411 
4446 
     | 
    
         
             
            /*
         
     | 
| 
       4412 
4447 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4413 
     | 
    
         
            -
             *    Date._iso8601(string)  ->  hash
         
     | 
| 
      
 4448 
     | 
    
         
            +
             *    Date._iso8601(string, limit: 128)  ->  hash
         
     | 
| 
       4414 
4449 
     | 
    
         
             
             *
         
     | 
| 
       4415 
4450 
     | 
    
         
             
             * Returns a hash of parsed elements.
         
     | 
| 
      
 4451 
     | 
    
         
            +
             *
         
     | 
| 
      
 4452 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4453 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4454 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4416 
4455 
     | 
    
         
             
             */
         
     | 
| 
       4417 
4456 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4418 
     | 
    
         
            -
            date_s__iso8601(VALUE  
     | 
| 
      
 4457 
     | 
    
         
            +
            date_s__iso8601(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4419 
4458 
     | 
    
         
             
            {
         
     | 
| 
      
 4459 
     | 
    
         
            +
                VALUE str, opt;
         
     | 
| 
      
 4460 
     | 
    
         
            +
             
     | 
| 
      
 4461 
     | 
    
         
            +
                rb_scan_args(argc, argv, "1:", &str, &opt);
         
     | 
| 
      
 4462 
     | 
    
         
            +
                check_limit(str, opt);
         
     | 
| 
      
 4463 
     | 
    
         
            +
             
     | 
| 
       4420 
4464 
     | 
    
         
             
                return date__iso8601(str);
         
     | 
| 
       4421 
4465 
     | 
    
         
             
            }
         
     | 
| 
       4422 
4466 
     | 
    
         | 
| 
       4423 
4467 
     | 
    
         
             
            /*
         
     | 
| 
       4424 
4468 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4425 
     | 
    
         
            -
             *    Date.iso8601(string='-4712-01-01'[, start=Date::ITALY])  ->  date
         
     | 
| 
      
 4469 
     | 
    
         
            +
             *    Date.iso8601(string='-4712-01-01'[, start=Date::ITALY], limit: 128)  ->  date
         
     | 
| 
       4426 
4470 
     | 
    
         
             
             *
         
     | 
| 
       4427 
4471 
     | 
    
         
             
             * Creates a new Date object by parsing from a string according to
         
     | 
| 
       4428 
4472 
     | 
    
         
             
             * some typical ISO 8601 formats.
         
     | 
| 
         @@ -4430,13 +4474,18 @@ date_s__iso8601(VALUE klass, VALUE str) 
     | 
|
| 
       4430 
4474 
     | 
    
         
             
             *    Date.iso8601('2001-02-03')	#=> #<Date: 2001-02-03 ...>
         
     | 
| 
       4431 
4475 
     | 
    
         
             
             *    Date.iso8601('20010203')		#=> #<Date: 2001-02-03 ...>
         
     | 
| 
       4432 
4476 
     | 
    
         
             
             *    Date.iso8601('2001-W05-6')	#=> #<Date: 2001-02-03 ...>
         
     | 
| 
      
 4477 
     | 
    
         
            +
             *
         
     | 
| 
      
 4478 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4479 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4480 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4433 
4481 
     | 
    
         
             
             */
         
     | 
| 
       4434 
4482 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4435 
4483 
     | 
    
         
             
            date_s_iso8601(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4436 
4484 
     | 
    
         
             
            {
         
     | 
| 
       4437 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 4485 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       4438 
4486 
     | 
    
         | 
| 
       4439 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 4487 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 4488 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       4440 
4489 
     | 
    
         | 
| 
       4441 
4490 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       4442 
4491 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -4446,38 +4495,56 @@ date_s_iso8601(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4446 
4495 
     | 
    
         
             
                }
         
     | 
| 
       4447 
4496 
     | 
    
         | 
| 
       4448 
4497 
     | 
    
         
             
                {
         
     | 
| 
       4449 
     | 
    
         
            -
             
     | 
| 
      
 4498 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 4499 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 4500 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 4501 
     | 
    
         
            +
                    if (!NIL_P(opt)) argv2[argc2++] = opt;
         
     | 
| 
      
 4502 
     | 
    
         
            +
            	VALUE hash = date_s__iso8601(argc2, argv2, klass);
         
     | 
| 
       4450 
4503 
     | 
    
         
             
            	return d_new_by_frags(klass, hash, sg);
         
     | 
| 
       4451 
4504 
     | 
    
         
             
                }
         
     | 
| 
       4452 
4505 
     | 
    
         
             
            }
         
     | 
| 
       4453 
4506 
     | 
    
         | 
| 
       4454 
4507 
     | 
    
         
             
            /*
         
     | 
| 
       4455 
4508 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4456 
     | 
    
         
            -
             *    Date._rfc3339(string)  ->  hash
         
     | 
| 
      
 4509 
     | 
    
         
            +
             *    Date._rfc3339(string, limit: 128)  ->  hash
         
     | 
| 
       4457 
4510 
     | 
    
         
             
             *
         
     | 
| 
       4458 
4511 
     | 
    
         
             
             * Returns a hash of parsed elements.
         
     | 
| 
      
 4512 
     | 
    
         
            +
             *
         
     | 
| 
      
 4513 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4514 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4515 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4459 
4516 
     | 
    
         
             
             */
         
     | 
| 
       4460 
4517 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4461 
     | 
    
         
            -
            date_s__rfc3339(VALUE  
     | 
| 
      
 4518 
     | 
    
         
            +
            date_s__rfc3339(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4462 
4519 
     | 
    
         
             
            {
         
     | 
| 
      
 4520 
     | 
    
         
            +
                VALUE str, opt;
         
     | 
| 
      
 4521 
     | 
    
         
            +
             
     | 
| 
      
 4522 
     | 
    
         
            +
                rb_scan_args(argc, argv, "1:", &str, &opt);
         
     | 
| 
      
 4523 
     | 
    
         
            +
                check_limit(str, opt);
         
     | 
| 
      
 4524 
     | 
    
         
            +
             
     | 
| 
       4463 
4525 
     | 
    
         
             
                return date__rfc3339(str);
         
     | 
| 
       4464 
4526 
     | 
    
         
             
            }
         
     | 
| 
       4465 
4527 
     | 
    
         | 
| 
       4466 
4528 
     | 
    
         
             
            /*
         
     | 
| 
       4467 
4529 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4468 
     | 
    
         
            -
             *    Date.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  ->  date
         
     | 
| 
      
 4530 
     | 
    
         
            +
             *    Date.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  ->  date
         
     | 
| 
       4469 
4531 
     | 
    
         
             
             *
         
     | 
| 
       4470 
4532 
     | 
    
         
             
             * Creates a new Date object by parsing from a string according to
         
     | 
| 
       4471 
4533 
     | 
    
         
             
             * some typical RFC 3339 formats.
         
     | 
| 
       4472 
4534 
     | 
    
         
             
             *
         
     | 
| 
       4473 
4535 
     | 
    
         
             
             *    Date.rfc3339('2001-02-03T04:05:06+07:00')	#=> #<Date: 2001-02-03 ...>
         
     | 
| 
      
 4536 
     | 
    
         
            +
             *
         
     | 
| 
      
 4537 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4538 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4539 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4474 
4540 
     | 
    
         
             
             */
         
     | 
| 
       4475 
4541 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4476 
4542 
     | 
    
         
             
            date_s_rfc3339(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4477 
4543 
     | 
    
         
             
            {
         
     | 
| 
       4478 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 4544 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       4479 
4545 
     | 
    
         | 
| 
       4480 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 4546 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 4547 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       4481 
4548 
     | 
    
         | 
| 
       4482 
4549 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       4483 
4550 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -4487,38 +4554,56 @@ date_s_rfc3339(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4487 
4554 
     | 
    
         
             
                }
         
     | 
| 
       4488 
4555 
     | 
    
         | 
| 
       4489 
4556 
     | 
    
         
             
                {
         
     | 
| 
       4490 
     | 
    
         
            -
             
     | 
| 
      
 4557 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 4558 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 4559 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 4560 
     | 
    
         
            +
                    if (!NIL_P(opt)) argv2[argc2++] = opt;
         
     | 
| 
      
 4561 
     | 
    
         
            +
            	VALUE hash = date_s__rfc3339(argc2, argv2, klass);
         
     | 
| 
       4491 
4562 
     | 
    
         
             
            	return d_new_by_frags(klass, hash, sg);
         
     | 
| 
       4492 
4563 
     | 
    
         
             
                }
         
     | 
| 
       4493 
4564 
     | 
    
         
             
            }
         
     | 
| 
       4494 
4565 
     | 
    
         | 
| 
       4495 
4566 
     | 
    
         
             
            /*
         
     | 
| 
       4496 
4567 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4497 
     | 
    
         
            -
             *    Date._xmlschema(string)  ->  hash
         
     | 
| 
      
 4568 
     | 
    
         
            +
             *    Date._xmlschema(string, limit: 128)  ->  hash
         
     | 
| 
       4498 
4569 
     | 
    
         
             
             *
         
     | 
| 
       4499 
4570 
     | 
    
         
             
             * Returns a hash of parsed elements.
         
     | 
| 
      
 4571 
     | 
    
         
            +
             *
         
     | 
| 
      
 4572 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4573 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4574 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4500 
4575 
     | 
    
         
             
             */
         
     | 
| 
       4501 
4576 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4502 
     | 
    
         
            -
            date_s__xmlschema(VALUE  
     | 
| 
      
 4577 
     | 
    
         
            +
            date_s__xmlschema(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4503 
4578 
     | 
    
         
             
            {
         
     | 
| 
      
 4579 
     | 
    
         
            +
                VALUE str, opt;
         
     | 
| 
      
 4580 
     | 
    
         
            +
             
     | 
| 
      
 4581 
     | 
    
         
            +
                rb_scan_args(argc, argv, "1:", &str, &opt);
         
     | 
| 
      
 4582 
     | 
    
         
            +
                check_limit(str, opt);
         
     | 
| 
      
 4583 
     | 
    
         
            +
             
     | 
| 
       4504 
4584 
     | 
    
         
             
                return date__xmlschema(str);
         
     | 
| 
       4505 
4585 
     | 
    
         
             
            }
         
     | 
| 
       4506 
4586 
     | 
    
         | 
| 
       4507 
4587 
     | 
    
         
             
            /*
         
     | 
| 
       4508 
4588 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4509 
     | 
    
         
            -
             *    Date.xmlschema(string='-4712-01-01'[, start=Date::ITALY])  ->  date
         
     | 
| 
      
 4589 
     | 
    
         
            +
             *    Date.xmlschema(string='-4712-01-01'[, start=Date::ITALY], limit: 128)  ->  date
         
     | 
| 
       4510 
4590 
     | 
    
         
             
             *
         
     | 
| 
       4511 
4591 
     | 
    
         
             
             * Creates a new Date object by parsing from a string according to
         
     | 
| 
       4512 
4592 
     | 
    
         
             
             * some typical XML Schema formats.
         
     | 
| 
       4513 
4593 
     | 
    
         
             
             *
         
     | 
| 
       4514 
4594 
     | 
    
         
             
             *    Date.xmlschema('2001-02-03')	#=> #<Date: 2001-02-03 ...>
         
     | 
| 
      
 4595 
     | 
    
         
            +
             *
         
     | 
| 
      
 4596 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4597 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4598 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4515 
4599 
     | 
    
         
             
             */
         
     | 
| 
       4516 
4600 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4517 
4601 
     | 
    
         
             
            date_s_xmlschema(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4518 
4602 
     | 
    
         
             
            {
         
     | 
| 
       4519 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 4603 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       4520 
4604 
     | 
    
         | 
| 
       4521 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 4605 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 4606 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       4522 
4607 
     | 
    
         | 
| 
       4523 
4608 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       4524 
4609 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -4528,41 +4613,58 @@ date_s_xmlschema(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4528 
4613 
     | 
    
         
             
                }
         
     | 
| 
       4529 
4614 
     | 
    
         | 
| 
       4530 
4615 
     | 
    
         
             
                {
         
     | 
| 
       4531 
     | 
    
         
            -
             
     | 
| 
      
 4616 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 4617 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 4618 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 4619 
     | 
    
         
            +
                    if (!NIL_P(opt)) argv2[argc2++] = opt;
         
     | 
| 
      
 4620 
     | 
    
         
            +
            	VALUE hash = date_s__xmlschema(argc2, argv2, klass);
         
     | 
| 
       4532 
4621 
     | 
    
         
             
            	return d_new_by_frags(klass, hash, sg);
         
     | 
| 
       4533 
4622 
     | 
    
         
             
                }
         
     | 
| 
       4534 
4623 
     | 
    
         
             
            }
         
     | 
| 
       4535 
4624 
     | 
    
         | 
| 
       4536 
4625 
     | 
    
         
             
            /*
         
     | 
| 
       4537 
4626 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4538 
     | 
    
         
            -
             *    Date._rfc2822(string)  ->  hash
         
     | 
| 
       4539 
     | 
    
         
            -
             *    Date._rfc822(string)   ->  hash
         
     | 
| 
      
 4627 
     | 
    
         
            +
             *    Date._rfc2822(string, limit: 128)  ->  hash
         
     | 
| 
      
 4628 
     | 
    
         
            +
             *    Date._rfc822(string, limit: 128)   ->  hash
         
     | 
| 
       4540 
4629 
     | 
    
         
             
             *
         
     | 
| 
       4541 
4630 
     | 
    
         
             
             * Returns a hash of parsed elements.
         
     | 
| 
      
 4631 
     | 
    
         
            +
             *
         
     | 
| 
      
 4632 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4633 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4634 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4542 
4635 
     | 
    
         
             
             */
         
     | 
| 
       4543 
4636 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4544 
     | 
    
         
            -
            date_s__rfc2822(VALUE  
     | 
| 
      
 4637 
     | 
    
         
            +
            date_s__rfc2822(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4545 
4638 
     | 
    
         
             
            {
         
     | 
| 
      
 4639 
     | 
    
         
            +
                VALUE str, opt;
         
     | 
| 
      
 4640 
     | 
    
         
            +
             
     | 
| 
      
 4641 
     | 
    
         
            +
                rb_scan_args(argc, argv, "1:", &str, &opt);
         
     | 
| 
      
 4642 
     | 
    
         
            +
                check_limit(str, opt);
         
     | 
| 
      
 4643 
     | 
    
         
            +
             
     | 
| 
       4546 
4644 
     | 
    
         
             
                return date__rfc2822(str);
         
     | 
| 
       4547 
4645 
     | 
    
         
             
            }
         
     | 
| 
       4548 
4646 
     | 
    
         | 
| 
       4549 
4647 
     | 
    
         
             
            /*
         
     | 
| 
       4550 
4648 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4551 
     | 
    
         
            -
             *    Date.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])  ->  date
         
     | 
| 
       4552 
     | 
    
         
            -
             *    Date.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])   ->  date
         
     | 
| 
      
 4649 
     | 
    
         
            +
             *    Date.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128)  ->  date
         
     | 
| 
      
 4650 
     | 
    
         
            +
             *    Date.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128)   ->  date
         
     | 
| 
       4553 
4651 
     | 
    
         
             
             *
         
     | 
| 
       4554 
4652 
     | 
    
         
             
             * Creates a new Date object by parsing from a string according to
         
     | 
| 
       4555 
4653 
     | 
    
         
             
             * some typical RFC 2822 formats.
         
     | 
| 
       4556 
4654 
     | 
    
         
             
             *
         
     | 
| 
       4557 
4655 
     | 
    
         
             
             *    Date.rfc2822('Sat, 3 Feb 2001 00:00:00 +0000')
         
     | 
| 
       4558 
4656 
     | 
    
         
             
             *						#=> #<Date: 2001-02-03 ...>
         
     | 
| 
      
 4657 
     | 
    
         
            +
             *
         
     | 
| 
      
 4658 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4659 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4660 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4559 
4661 
     | 
    
         
             
             */
         
     | 
| 
       4560 
4662 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4561 
4663 
     | 
    
         
             
            date_s_rfc2822(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4562 
4664 
     | 
    
         
             
            {
         
     | 
| 
       4563 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 4665 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       4564 
4666 
     | 
    
         | 
| 
       4565 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 4667 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
       4566 
4668 
     | 
    
         | 
| 
       4567 
4669 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       4568 
4670 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -4572,39 +4674,56 @@ date_s_rfc2822(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4572 
4674 
     | 
    
         
             
                }
         
     | 
| 
       4573 
4675 
     | 
    
         | 
| 
       4574 
4676 
     | 
    
         
             
                {
         
     | 
| 
       4575 
     | 
    
         
            -
             
     | 
| 
      
 4677 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 4678 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 4679 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 4680 
     | 
    
         
            +
                    if (!NIL_P(opt)) argv2[argc2++] = opt;
         
     | 
| 
      
 4681 
     | 
    
         
            +
            	VALUE hash = date_s__rfc2822(argc2, argv2, klass);
         
     | 
| 
       4576 
4682 
     | 
    
         
             
            	return d_new_by_frags(klass, hash, sg);
         
     | 
| 
       4577 
4683 
     | 
    
         
             
                }
         
     | 
| 
       4578 
4684 
     | 
    
         
             
            }
         
     | 
| 
       4579 
4685 
     | 
    
         | 
| 
       4580 
4686 
     | 
    
         
             
            /*
         
     | 
| 
       4581 
4687 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4582 
     | 
    
         
            -
             *    Date._httpdate(string)  ->  hash
         
     | 
| 
      
 4688 
     | 
    
         
            +
             *    Date._httpdate(string, limit: 128)  ->  hash
         
     | 
| 
       4583 
4689 
     | 
    
         
             
             *
         
     | 
| 
       4584 
4690 
     | 
    
         
             
             * Returns a hash of parsed elements.
         
     | 
| 
      
 4691 
     | 
    
         
            +
             *
         
     | 
| 
      
 4692 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4693 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4694 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4585 
4695 
     | 
    
         
             
             */
         
     | 
| 
       4586 
4696 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4587 
     | 
    
         
            -
            date_s__httpdate(VALUE  
     | 
| 
      
 4697 
     | 
    
         
            +
            date_s__httpdate(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4588 
4698 
     | 
    
         
             
            {
         
     | 
| 
      
 4699 
     | 
    
         
            +
                VALUE str, opt;
         
     | 
| 
      
 4700 
     | 
    
         
            +
             
     | 
| 
      
 4701 
     | 
    
         
            +
                rb_scan_args(argc, argv, "1:", &str, &opt);
         
     | 
| 
      
 4702 
     | 
    
         
            +
                check_limit(str, opt);
         
     | 
| 
      
 4703 
     | 
    
         
            +
             
     | 
| 
       4589 
4704 
     | 
    
         
             
                return date__httpdate(str);
         
     | 
| 
       4590 
4705 
     | 
    
         
             
            }
         
     | 
| 
       4591 
4706 
     | 
    
         | 
| 
       4592 
4707 
     | 
    
         
             
            /*
         
     | 
| 
       4593 
4708 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4594 
     | 
    
         
            -
             *    Date.httpdate(string='Mon, 01 Jan -4712 00:00:00 GMT'[, start=Date::ITALY])  ->  date
         
     | 
| 
      
 4709 
     | 
    
         
            +
             *    Date.httpdate(string='Mon, 01 Jan -4712 00:00:00 GMT'[, start=Date::ITALY], limit: 128)  ->  date
         
     | 
| 
       4595 
4710 
     | 
    
         
             
             *
         
     | 
| 
       4596 
4711 
     | 
    
         
             
             * Creates a new Date object by parsing from a string according to
         
     | 
| 
       4597 
4712 
     | 
    
         
             
             * some RFC 2616 format.
         
     | 
| 
       4598 
4713 
     | 
    
         
             
             *
         
     | 
| 
       4599 
4714 
     | 
    
         
             
             *    Date.httpdate('Sat, 03 Feb 2001 00:00:00 GMT')
         
     | 
| 
       4600 
4715 
     | 
    
         
             
             *						#=> #<Date: 2001-02-03 ...>
         
     | 
| 
      
 4716 
     | 
    
         
            +
             *
         
     | 
| 
      
 4717 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4718 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4719 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4601 
4720 
     | 
    
         
             
             */
         
     | 
| 
       4602 
4721 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4603 
4722 
     | 
    
         
             
            date_s_httpdate(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4604 
4723 
     | 
    
         
             
            {
         
     | 
| 
       4605 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 4724 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       4606 
4725 
     | 
    
         | 
| 
       4607 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 4726 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
       4608 
4727 
     | 
    
         | 
| 
       4609 
4728 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       4610 
4729 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -4614,26 +4733,39 @@ date_s_httpdate(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4614 
4733 
     | 
    
         
             
                }
         
     | 
| 
       4615 
4734 
     | 
    
         | 
| 
       4616 
4735 
     | 
    
         
             
                {
         
     | 
| 
       4617 
     | 
    
         
            -
             
     | 
| 
      
 4736 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 4737 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 4738 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 4739 
     | 
    
         
            +
                    if (!NIL_P(opt)) argv2[argc2++] = opt;
         
     | 
| 
      
 4740 
     | 
    
         
            +
            	VALUE hash = date_s__httpdate(argc2, argv2, klass);
         
     | 
| 
       4618 
4741 
     | 
    
         
             
            	return d_new_by_frags(klass, hash, sg);
         
     | 
| 
       4619 
4742 
     | 
    
         
             
                }
         
     | 
| 
       4620 
4743 
     | 
    
         
             
            }
         
     | 
| 
       4621 
4744 
     | 
    
         | 
| 
       4622 
4745 
     | 
    
         
             
            /*
         
     | 
| 
       4623 
4746 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4624 
     | 
    
         
            -
             *    Date._jisx0301(string)  ->  hash
         
     | 
| 
      
 4747 
     | 
    
         
            +
             *    Date._jisx0301(string, limit: 128)  ->  hash
         
     | 
| 
       4625 
4748 
     | 
    
         
             
             *
         
     | 
| 
       4626 
4749 
     | 
    
         
             
             * Returns a hash of parsed elements.
         
     | 
| 
      
 4750 
     | 
    
         
            +
             *
         
     | 
| 
      
 4751 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4752 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4753 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4627 
4754 
     | 
    
         
             
             */
         
     | 
| 
       4628 
4755 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4629 
     | 
    
         
            -
            date_s__jisx0301(VALUE  
     | 
| 
      
 4756 
     | 
    
         
            +
            date_s__jisx0301(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4630 
4757 
     | 
    
         
             
            {
         
     | 
| 
      
 4758 
     | 
    
         
            +
                VALUE str, opt;
         
     | 
| 
      
 4759 
     | 
    
         
            +
             
     | 
| 
      
 4760 
     | 
    
         
            +
                rb_scan_args(argc, argv, "1:", &str, &opt);
         
     | 
| 
      
 4761 
     | 
    
         
            +
                check_limit(str, opt);
         
     | 
| 
      
 4762 
     | 
    
         
            +
             
     | 
| 
       4631 
4763 
     | 
    
         
             
                return date__jisx0301(str);
         
     | 
| 
       4632 
4764 
     | 
    
         
             
            }
         
     | 
| 
       4633 
4765 
     | 
    
         | 
| 
       4634 
4766 
     | 
    
         
             
            /*
         
     | 
| 
       4635 
4767 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       4636 
     | 
    
         
            -
             *    Date.jisx0301(string='-4712-01-01'[, start=Date::ITALY])  ->  date
         
     | 
| 
      
 4768 
     | 
    
         
            +
             *    Date.jisx0301(string='-4712-01-01'[, start=Date::ITALY], limit: 128)  ->  date
         
     | 
| 
       4637 
4769 
     | 
    
         
             
             *
         
     | 
| 
       4638 
4770 
     | 
    
         
             
             * Creates a new Date object by parsing from a string according to
         
     | 
| 
       4639 
4771 
     | 
    
         
             
             * some typical JIS X 0301 formats.
         
     | 
| 
         @@ -4643,13 +4775,18 @@ date_s__jisx0301(VALUE klass, VALUE str) 
     | 
|
| 
       4643 
4775 
     | 
    
         
             
             * For no-era year, legacy format, Heisei is assumed.
         
     | 
| 
       4644 
4776 
     | 
    
         
             
             *
         
     | 
| 
       4645 
4777 
     | 
    
         
             
             *    Date.jisx0301('13.02.03') 		#=> #<Date: 2001-02-03 ...>
         
     | 
| 
      
 4778 
     | 
    
         
            +
             *
         
     | 
| 
      
 4779 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 4780 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 4781 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       4646 
4782 
     | 
    
         
             
             */
         
     | 
| 
       4647 
4783 
     | 
    
         
             
            static VALUE
         
     | 
| 
       4648 
4784 
     | 
    
         
             
            date_s_jisx0301(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       4649 
4785 
     | 
    
         
             
            {
         
     | 
| 
       4650 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 4786 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       4651 
4787 
     | 
    
         | 
| 
       4652 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 4788 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 4789 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       4653 
4790 
     | 
    
         | 
| 
       4654 
4791 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       4655 
4792 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -4659,7 +4796,11 @@ date_s_jisx0301(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       4659 
4796 
     | 
    
         
             
                }
         
     | 
| 
       4660 
4797 
     | 
    
         | 
| 
       4661 
4798 
     | 
    
         
             
                {
         
     | 
| 
       4662 
     | 
    
         
            -
             
     | 
| 
      
 4799 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 4800 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 4801 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 4802 
     | 
    
         
            +
                    if (!NIL_P(opt)) argv2[argc2++] = opt;
         
     | 
| 
      
 4803 
     | 
    
         
            +
            	VALUE hash = date_s__jisx0301(argc2, argv2, klass);
         
     | 
| 
       4663 
4804 
     | 
    
         
             
            	return d_new_by_frags(klass, hash, sg);
         
     | 
| 
       4664 
4805 
     | 
    
         
             
                }
         
     | 
| 
       4665 
4806 
     | 
    
         
             
            }
         
     | 
| 
         @@ -7998,7 +8139,7 @@ datetime_s_strptime(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       7998 
8139 
     | 
    
         | 
| 
       7999 
8140 
     | 
    
         
             
            /*
         
     | 
| 
       8000 
8141 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       8001 
     | 
    
         
            -
             *    DateTime.parse(string='-4712-01-01T00:00:00+00:00'[, comp=true[, start=Date::ITALY]])  ->  datetime
         
     | 
| 
      
 8142 
     | 
    
         
            +
             *    DateTime.parse(string='-4712-01-01T00:00:00+00:00'[, comp=true[, start=Date::ITALY]], limit: 128)  ->  datetime
         
     | 
| 
       8002 
8143 
     | 
    
         
             
             *
         
     | 
| 
       8003 
8144 
     | 
    
         
             
             * Parses the given representation of date and time, and creates a
         
     | 
| 
       8004 
8145 
     | 
    
         
             
             * DateTime object.  This method does not function as a validator.
         
     | 
| 
         @@ -8012,13 +8153,18 @@ datetime_s_strptime(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8012 
8153 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
         
     | 
| 
       8013 
8154 
     | 
    
         
             
             *    DateTime.parse('3rd Feb 2001 04:05:06 PM')
         
     | 
| 
       8014 
8155 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T16:05:06+00:00 ...>
         
     | 
| 
      
 8156 
     | 
    
         
            +
             *
         
     | 
| 
      
 8157 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 8158 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 8159 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       8015 
8160 
     | 
    
         
             
             */
         
     | 
| 
       8016 
8161 
     | 
    
         
             
            static VALUE
         
     | 
| 
       8017 
8162 
     | 
    
         
             
            datetime_s_parse(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       8018 
8163 
     | 
    
         
             
            {
         
     | 
| 
       8019 
     | 
    
         
            -
                VALUE str, comp, sg;
         
     | 
| 
      
 8164 
     | 
    
         
            +
                VALUE str, comp, sg, opt;
         
     | 
| 
       8020 
8165 
     | 
    
         | 
| 
       8021 
     | 
    
         
            -
                rb_scan_args(argc, argv, "03", &str, &comp, &sg);
         
     | 
| 
      
 8166 
     | 
    
         
            +
                rb_scan_args(argc, argv, "03:", &str, &comp, &sg, &opt);
         
     | 
| 
      
 8167 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       8022 
8168 
     | 
    
         | 
| 
       8023 
8169 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       8024 
8170 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -8030,18 +8176,20 @@ datetime_s_parse(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8030 
8176 
     | 
    
         
             
                }
         
     | 
| 
       8031 
8177 
     | 
    
         | 
| 
       8032 
8178 
     | 
    
         
             
                {
         
     | 
| 
       8033 
     | 
    
         
            -
             
     | 
| 
       8034 
     | 
    
         
            -
             
     | 
| 
       8035 
     | 
    
         
            -
             
     | 
| 
       8036 
     | 
    
         
            -
             
     | 
| 
       8037 
     | 
    
         
            -
             
     | 
| 
      
 8179 
     | 
    
         
            +
                    int argc2 = 2;
         
     | 
| 
      
 8180 
     | 
    
         
            +
                    VALUE argv2[3];
         
     | 
| 
      
 8181 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 8182 
     | 
    
         
            +
                    argv2[1] = comp;
         
     | 
| 
      
 8183 
     | 
    
         
            +
                    argv2[2] = opt;
         
     | 
| 
      
 8184 
     | 
    
         
            +
                    if (!NIL_P(opt)) argc2++;
         
     | 
| 
      
 8185 
     | 
    
         
            +
            	VALUE hash = date_s__parse(argc2, argv2, klass);
         
     | 
| 
       8038 
8186 
     | 
    
         
             
            	return dt_new_by_frags(klass, hash, sg);
         
     | 
| 
       8039 
8187 
     | 
    
         
             
                }
         
     | 
| 
       8040 
8188 
     | 
    
         
             
            }
         
     | 
| 
       8041 
8189 
     | 
    
         | 
| 
       8042 
8190 
     | 
    
         
             
            /*
         
     | 
| 
       8043 
8191 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       8044 
     | 
    
         
            -
             *    DateTime.iso8601(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  ->  datetime
         
     | 
| 
      
 8192 
     | 
    
         
            +
             *    DateTime.iso8601(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  ->  datetime
         
     | 
| 
       8045 
8193 
     | 
    
         
             
             *
         
     | 
| 
       8046 
8194 
     | 
    
         
             
             * Creates a new DateTime object by parsing from a string according to
         
     | 
| 
       8047 
8195 
     | 
    
         
             
             * some typical ISO 8601 formats.
         
     | 
| 
         @@ -8052,13 +8200,18 @@ datetime_s_parse(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8052 
8200 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
         
     | 
| 
       8053 
8201 
     | 
    
         
             
             *    DateTime.iso8601('2001-W05-6T04:05:06+07:00')
         
     | 
| 
       8054 
8202 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
         
     | 
| 
      
 8203 
     | 
    
         
            +
             *
         
     | 
| 
      
 8204 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 8205 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 8206 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       8055 
8207 
     | 
    
         
             
             */
         
     | 
| 
       8056 
8208 
     | 
    
         
             
            static VALUE
         
     | 
| 
       8057 
8209 
     | 
    
         
             
            datetime_s_iso8601(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       8058 
8210 
     | 
    
         
             
            {
         
     | 
| 
       8059 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 8211 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       8060 
8212 
     | 
    
         | 
| 
       8061 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 8213 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 8214 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       8062 
8215 
     | 
    
         | 
| 
       8063 
8216 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       8064 
8217 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -8068,27 +8221,37 @@ datetime_s_iso8601(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8068 
8221 
     | 
    
         
             
                }
         
     | 
| 
       8069 
8222 
     | 
    
         | 
| 
       8070 
8223 
     | 
    
         
             
                {
         
     | 
| 
       8071 
     | 
    
         
            -
             
     | 
| 
      
 8224 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 8225 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 8226 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 8227 
     | 
    
         
            +
                    argv2[1] = opt;
         
     | 
| 
      
 8228 
     | 
    
         
            +
                    if (!NIL_P(opt)) argc2--;
         
     | 
| 
      
 8229 
     | 
    
         
            +
            	VALUE hash = date_s__iso8601(argc2, argv2, klass);
         
     | 
| 
       8072 
8230 
     | 
    
         
             
            	return dt_new_by_frags(klass, hash, sg);
         
     | 
| 
       8073 
8231 
     | 
    
         
             
                }
         
     | 
| 
       8074 
8232 
     | 
    
         
             
            }
         
     | 
| 
       8075 
8233 
     | 
    
         | 
| 
       8076 
8234 
     | 
    
         
             
            /*
         
     | 
| 
       8077 
8235 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       8078 
     | 
    
         
            -
             *    DateTime.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  ->  datetime
         
     | 
| 
      
 8236 
     | 
    
         
            +
             *    DateTime.rfc3339(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  ->  datetime
         
     | 
| 
       8079 
8237 
     | 
    
         
             
             *
         
     | 
| 
       8080 
8238 
     | 
    
         
             
             * Creates a new DateTime object by parsing from a string according to
         
     | 
| 
       8081 
8239 
     | 
    
         
             
             * some typical RFC 3339 formats.
         
     | 
| 
       8082 
8240 
     | 
    
         
             
             *
         
     | 
| 
       8083 
8241 
     | 
    
         
             
             *    DateTime.rfc3339('2001-02-03T04:05:06+07:00')
         
     | 
| 
       8084 
8242 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
         
     | 
| 
      
 8243 
     | 
    
         
            +
             *
         
     | 
| 
      
 8244 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 8245 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 8246 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       8085 
8247 
     | 
    
         
             
             */
         
     | 
| 
       8086 
8248 
     | 
    
         
             
            static VALUE
         
     | 
| 
       8087 
8249 
     | 
    
         
             
            datetime_s_rfc3339(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       8088 
8250 
     | 
    
         
             
            {
         
     | 
| 
       8089 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 8251 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       8090 
8252 
     | 
    
         | 
| 
       8091 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 8253 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 8254 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       8092 
8255 
     | 
    
         | 
| 
       8093 
8256 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       8094 
8257 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -8098,27 +8261,37 @@ datetime_s_rfc3339(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8098 
8261 
     | 
    
         
             
                }
         
     | 
| 
       8099 
8262 
     | 
    
         | 
| 
       8100 
8263 
     | 
    
         
             
                {
         
     | 
| 
       8101 
     | 
    
         
            -
             
     | 
| 
      
 8264 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 8265 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 8266 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 8267 
     | 
    
         
            +
                    argv2[1] = opt;
         
     | 
| 
      
 8268 
     | 
    
         
            +
                    if (!NIL_P(opt)) argc2++;
         
     | 
| 
      
 8269 
     | 
    
         
            +
            	VALUE hash = date_s__rfc3339(argc2, argv2, klass);
         
     | 
| 
       8102 
8270 
     | 
    
         
             
            	return dt_new_by_frags(klass, hash, sg);
         
     | 
| 
       8103 
8271 
     | 
    
         
             
                }
         
     | 
| 
       8104 
8272 
     | 
    
         
             
            }
         
     | 
| 
       8105 
8273 
     | 
    
         | 
| 
       8106 
8274 
     | 
    
         
             
            /*
         
     | 
| 
       8107 
8275 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       8108 
     | 
    
         
            -
             *    DateTime.xmlschema(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  ->  datetime
         
     | 
| 
      
 8276 
     | 
    
         
            +
             *    DateTime.xmlschema(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  ->  datetime
         
     | 
| 
       8109 
8277 
     | 
    
         
             
             *
         
     | 
| 
       8110 
8278 
     | 
    
         
             
             * Creates a new DateTime object by parsing from a string according to
         
     | 
| 
       8111 
8279 
     | 
    
         
             
             * some typical XML Schema formats.
         
     | 
| 
       8112 
8280 
     | 
    
         
             
             *
         
     | 
| 
       8113 
8281 
     | 
    
         
             
             *    DateTime.xmlschema('2001-02-03T04:05:06+07:00')
         
     | 
| 
       8114 
8282 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
         
     | 
| 
      
 8283 
     | 
    
         
            +
             *
         
     | 
| 
      
 8284 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 8285 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 8286 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       8115 
8287 
     | 
    
         
             
             */
         
     | 
| 
       8116 
8288 
     | 
    
         
             
            static VALUE
         
     | 
| 
       8117 
8289 
     | 
    
         
             
            datetime_s_xmlschema(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       8118 
8290 
     | 
    
         
             
            {
         
     | 
| 
       8119 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 8291 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       8120 
8292 
     | 
    
         | 
| 
       8121 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 8293 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 8294 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       8122 
8295 
     | 
    
         | 
| 
       8123 
8296 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       8124 
8297 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -8128,28 +8301,38 @@ datetime_s_xmlschema(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8128 
8301 
     | 
    
         
             
                }
         
     | 
| 
       8129 
8302 
     | 
    
         | 
| 
       8130 
8303 
     | 
    
         
             
                {
         
     | 
| 
       8131 
     | 
    
         
            -
             
     | 
| 
      
 8304 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 8305 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 8306 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 8307 
     | 
    
         
            +
                    argv2[1] = opt;
         
     | 
| 
      
 8308 
     | 
    
         
            +
                    if (!NIL_P(opt)) argc2++;
         
     | 
| 
      
 8309 
     | 
    
         
            +
            	VALUE hash = date_s__xmlschema(argc2, argv2, klass);
         
     | 
| 
       8132 
8310 
     | 
    
         
             
            	return dt_new_by_frags(klass, hash, sg);
         
     | 
| 
       8133 
8311 
     | 
    
         
             
                }
         
     | 
| 
       8134 
8312 
     | 
    
         
             
            }
         
     | 
| 
       8135 
8313 
     | 
    
         | 
| 
       8136 
8314 
     | 
    
         
             
            /*
         
     | 
| 
       8137 
8315 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       8138 
     | 
    
         
            -
             *    DateTime.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])  ->  datetime
         
     | 
| 
       8139 
     | 
    
         
            -
             *    DateTime.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY])   ->  datetime
         
     | 
| 
      
 8316 
     | 
    
         
            +
             *    DateTime.rfc2822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128)  ->  datetime
         
     | 
| 
      
 8317 
     | 
    
         
            +
             *    DateTime.rfc822(string='Mon, 1 Jan -4712 00:00:00 +0000'[, start=Date::ITALY], limit: 128)   ->  datetime
         
     | 
| 
       8140 
8318 
     | 
    
         
             
             *
         
     | 
| 
       8141 
8319 
     | 
    
         
             
             * Creates a new DateTime object by parsing from a string according to
         
     | 
| 
       8142 
8320 
     | 
    
         
             
             * some typical RFC 2822 formats.
         
     | 
| 
       8143 
8321 
     | 
    
         
             
             *
         
     | 
| 
       8144 
8322 
     | 
    
         
             
             *     DateTime.rfc2822('Sat, 3 Feb 2001 04:05:06 +0700')
         
     | 
| 
       8145 
8323 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
         
     | 
| 
      
 8324 
     | 
    
         
            +
             *
         
     | 
| 
      
 8325 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 8326 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 8327 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       8146 
8328 
     | 
    
         
             
             */
         
     | 
| 
       8147 
8329 
     | 
    
         
             
            static VALUE
         
     | 
| 
       8148 
8330 
     | 
    
         
             
            datetime_s_rfc2822(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       8149 
8331 
     | 
    
         
             
            {
         
     | 
| 
       8150 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 8332 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       8151 
8333 
     | 
    
         | 
| 
       8152 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 8334 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 8335 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       8153 
8336 
     | 
    
         | 
| 
       8154 
8337 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       8155 
8338 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -8159,7 +8342,12 @@ datetime_s_rfc2822(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8159 
8342 
     | 
    
         
             
                }
         
     | 
| 
       8160 
8343 
     | 
    
         | 
| 
       8161 
8344 
     | 
    
         
             
                {
         
     | 
| 
       8162 
     | 
    
         
            -
             
     | 
| 
      
 8345 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 8346 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 8347 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 8348 
     | 
    
         
            +
                    argv2[1] = opt;
         
     | 
| 
      
 8349 
     | 
    
         
            +
                    if (!NIL_P(opt)) argc2++;
         
     | 
| 
      
 8350 
     | 
    
         
            +
            	VALUE hash = date_s__rfc2822(argc2, argv2, klass);
         
     | 
| 
       8163 
8351 
     | 
    
         
             
            	return dt_new_by_frags(klass, hash, sg);
         
     | 
| 
       8164 
8352 
     | 
    
         
             
                }
         
     | 
| 
       8165 
8353 
     | 
    
         
             
            }
         
     | 
| 
         @@ -8173,13 +8361,18 @@ datetime_s_rfc2822(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8173 
8361 
     | 
    
         
             
             *
         
     | 
| 
       8174 
8362 
     | 
    
         
             
             *    DateTime.httpdate('Sat, 03 Feb 2001 04:05:06 GMT')
         
     | 
| 
       8175 
8363 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+00:00 ...>
         
     | 
| 
      
 8364 
     | 
    
         
            +
             *
         
     | 
| 
      
 8365 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 8366 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 8367 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       8176 
8368 
     | 
    
         
             
             */
         
     | 
| 
       8177 
8369 
     | 
    
         
             
            static VALUE
         
     | 
| 
       8178 
8370 
     | 
    
         
             
            datetime_s_httpdate(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       8179 
8371 
     | 
    
         
             
            {
         
     | 
| 
       8180 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 8372 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       8181 
8373 
     | 
    
         | 
| 
       8182 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 8374 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 8375 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       8183 
8376 
     | 
    
         | 
| 
       8184 
8377 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       8185 
8378 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -8189,14 +8382,19 @@ datetime_s_httpdate(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8189 
8382 
     | 
    
         
             
                }
         
     | 
| 
       8190 
8383 
     | 
    
         | 
| 
       8191 
8384 
     | 
    
         
             
                {
         
     | 
| 
       8192 
     | 
    
         
            -
             
     | 
| 
      
 8385 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 8386 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 8387 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 8388 
     | 
    
         
            +
                    argv2[1] = opt;
         
     | 
| 
      
 8389 
     | 
    
         
            +
                    if (!NIL_P(opt)) argc2++;
         
     | 
| 
      
 8390 
     | 
    
         
            +
            	VALUE hash = date_s__httpdate(argc2, argv2, klass);
         
     | 
| 
       8193 
8391 
     | 
    
         
             
            	return dt_new_by_frags(klass, hash, sg);
         
     | 
| 
       8194 
8392 
     | 
    
         
             
                }
         
     | 
| 
       8195 
8393 
     | 
    
         
             
            }
         
     | 
| 
       8196 
8394 
     | 
    
         | 
| 
       8197 
8395 
     | 
    
         
             
            /*
         
     | 
| 
       8198 
8396 
     | 
    
         
             
             * call-seq:
         
     | 
| 
       8199 
     | 
    
         
            -
             *    DateTime.jisx0301(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY])  ->  datetime
         
     | 
| 
      
 8397 
     | 
    
         
            +
             *    DateTime.jisx0301(string='-4712-01-01T00:00:00+00:00'[, start=Date::ITALY], limit: 128)  ->  datetime
         
     | 
| 
       8200 
8398 
     | 
    
         
             
             *
         
     | 
| 
       8201 
8399 
     | 
    
         
             
             * Creates a new DateTime object by parsing from a string according to
         
     | 
| 
       8202 
8400 
     | 
    
         
             
             * some typical JIS X 0301 formats.
         
     | 
| 
         @@ -8208,13 +8406,18 @@ datetime_s_httpdate(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8208 
8406 
     | 
    
         
             
             *
         
     | 
| 
       8209 
8407 
     | 
    
         
             
             *    DateTime.jisx0301('13.02.03T04:05:06+07:00')
         
     | 
| 
       8210 
8408 
     | 
    
         
             
             *				#=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
         
     | 
| 
      
 8409 
     | 
    
         
            +
             *
         
     | 
| 
      
 8410 
     | 
    
         
            +
             * Raise an ArgumentError when the string length is longer than _limit_.
         
     | 
| 
      
 8411 
     | 
    
         
            +
             * You can stop this check by passing `limit: nil`, but note that
         
     | 
| 
      
 8412 
     | 
    
         
            +
             * it may take a long time to parse.
         
     | 
| 
       8211 
8413 
     | 
    
         
             
             */
         
     | 
| 
       8212 
8414 
     | 
    
         
             
            static VALUE
         
     | 
| 
       8213 
8415 
     | 
    
         
             
            datetime_s_jisx0301(int argc, VALUE *argv, VALUE klass)
         
     | 
| 
       8214 
8416 
     | 
    
         
             
            {
         
     | 
| 
       8215 
     | 
    
         
            -
                VALUE str, sg;
         
     | 
| 
      
 8417 
     | 
    
         
            +
                VALUE str, sg, opt;
         
     | 
| 
       8216 
8418 
     | 
    
         | 
| 
       8217 
     | 
    
         
            -
                rb_scan_args(argc, argv, "02", &str, &sg);
         
     | 
| 
      
 8419 
     | 
    
         
            +
                rb_scan_args(argc, argv, "02:", &str, &sg, &opt);
         
     | 
| 
      
 8420 
     | 
    
         
            +
                if (!NIL_P(opt)) argc--;
         
     | 
| 
       8218 
8421 
     | 
    
         | 
| 
       8219 
8422 
     | 
    
         
             
                switch (argc) {
         
     | 
| 
       8220 
8423 
     | 
    
         
             
                  case 0:
         
     | 
| 
         @@ -8224,7 +8427,12 @@ datetime_s_jisx0301(int argc, VALUE *argv, VALUE klass) 
     | 
|
| 
       8224 
8427 
     | 
    
         
             
                }
         
     | 
| 
       8225 
8428 
     | 
    
         | 
| 
       8226 
8429 
     | 
    
         
             
                {
         
     | 
| 
       8227 
     | 
    
         
            -
             
     | 
| 
      
 8430 
     | 
    
         
            +
                    int argc2 = 1;
         
     | 
| 
      
 8431 
     | 
    
         
            +
                    VALUE argv2[2];
         
     | 
| 
      
 8432 
     | 
    
         
            +
                    argv2[0] = str;
         
     | 
| 
      
 8433 
     | 
    
         
            +
                    argv2[1] = opt;
         
     | 
| 
      
 8434 
     | 
    
         
            +
                    if (!NIL_P(opt)) argc2++;
         
     | 
| 
      
 8435 
     | 
    
         
            +
            	VALUE hash = date_s__jisx0301(argc2, argv2, klass);
         
     | 
| 
       8228 
8436 
     | 
    
         
             
            	return dt_new_by_frags(klass, hash, sg);
         
     | 
| 
       8229 
8437 
     | 
    
         
             
                }
         
     | 
| 
       8230 
8438 
     | 
    
         
             
            }
         
     | 
| 
         @@ -9383,19 +9591,19 @@ Init_date_core(void) 
     | 
|
| 
       9383 
9591 
     | 
    
         
             
                rb_define_singleton_method(cDate, "strptime", date_s_strptime, -1);
         
     | 
| 
       9384 
9592 
     | 
    
         
             
                rb_define_singleton_method(cDate, "_parse", date_s__parse, -1);
         
     | 
| 
       9385 
9593 
     | 
    
         
             
                rb_define_singleton_method(cDate, "parse", date_s_parse, -1);
         
     | 
| 
       9386 
     | 
    
         
            -
                rb_define_singleton_method(cDate, "_iso8601", date_s__iso8601, 1);
         
     | 
| 
      
 9594 
     | 
    
         
            +
                rb_define_singleton_method(cDate, "_iso8601", date_s__iso8601, -1);
         
     | 
| 
       9387 
9595 
     | 
    
         
             
                rb_define_singleton_method(cDate, "iso8601", date_s_iso8601, -1);
         
     | 
| 
       9388 
     | 
    
         
            -
                rb_define_singleton_method(cDate, "_rfc3339", date_s__rfc3339, 1);
         
     | 
| 
      
 9596 
     | 
    
         
            +
                rb_define_singleton_method(cDate, "_rfc3339", date_s__rfc3339, -1);
         
     | 
| 
       9389 
9597 
     | 
    
         
             
                rb_define_singleton_method(cDate, "rfc3339", date_s_rfc3339, -1);
         
     | 
| 
       9390 
     | 
    
         
            -
                rb_define_singleton_method(cDate, "_xmlschema", date_s__xmlschema, 1);
         
     | 
| 
      
 9598 
     | 
    
         
            +
                rb_define_singleton_method(cDate, "_xmlschema", date_s__xmlschema, -1);
         
     | 
| 
       9391 
9599 
     | 
    
         
             
                rb_define_singleton_method(cDate, "xmlschema", date_s_xmlschema, -1);
         
     | 
| 
       9392 
     | 
    
         
            -
                rb_define_singleton_method(cDate, "_rfc2822", date_s__rfc2822, 1);
         
     | 
| 
       9393 
     | 
    
         
            -
                rb_define_singleton_method(cDate, "_rfc822", date_s__rfc2822, 1);
         
     | 
| 
      
 9600 
     | 
    
         
            +
                rb_define_singleton_method(cDate, "_rfc2822", date_s__rfc2822, -1);
         
     | 
| 
      
 9601 
     | 
    
         
            +
                rb_define_singleton_method(cDate, "_rfc822", date_s__rfc2822, -1);
         
     | 
| 
       9394 
9602 
     | 
    
         
             
                rb_define_singleton_method(cDate, "rfc2822", date_s_rfc2822, -1);
         
     | 
| 
       9395 
9603 
     | 
    
         
             
                rb_define_singleton_method(cDate, "rfc822", date_s_rfc2822, -1);
         
     | 
| 
       9396 
     | 
    
         
            -
                rb_define_singleton_method(cDate, "_httpdate", date_s__httpdate, 1);
         
     | 
| 
      
 9604 
     | 
    
         
            +
                rb_define_singleton_method(cDate, "_httpdate", date_s__httpdate, -1);
         
     | 
| 
       9397 
9605 
     | 
    
         
             
                rb_define_singleton_method(cDate, "httpdate", date_s_httpdate, -1);
         
     | 
| 
       9398 
     | 
    
         
            -
                rb_define_singleton_method(cDate, "_jisx0301", date_s__jisx0301, 1);
         
     | 
| 
      
 9606 
     | 
    
         
            +
                rb_define_singleton_method(cDate, "_jisx0301", date_s__jisx0301, -1);
         
     | 
| 
       9399 
9607 
     | 
    
         
             
                rb_define_singleton_method(cDate, "jisx0301", date_s_jisx0301, -1);
         
     | 
| 
       9400 
9608 
     | 
    
         | 
| 
       9401 
9609 
     | 
    
         
             
                rb_define_method(cDate, "initialize", date_initialize, -1);
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,18 +1,18 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: date
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Tadayoshi Funaba
         
     | 
| 
       8 
     | 
    
         
            -
            autorequire:
         
     | 
| 
      
 8 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2021-11-15 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: A subclass of Object includes Comparable module for handling dates.
         
     | 
| 
       14 
14 
     | 
    
         
             
            email:
         
     | 
| 
       15 
     | 
    
         
            -
            -
         
     | 
| 
      
 15 
     | 
    
         
            +
            - 
         
     | 
| 
       16 
16 
     | 
    
         
             
            executables: []
         
     | 
| 
       17 
17 
     | 
    
         
             
            extensions:
         
     | 
| 
       18 
18 
     | 
    
         
             
            - ext/date/extconf.rb
         
     | 
| 
         @@ -32,7 +32,7 @@ homepage: https://github.com/ruby/date 
     | 
|
| 
       32 
32 
     | 
    
         
             
            licenses:
         
     | 
| 
       33 
33 
     | 
    
         
             
            - BSD-2-Clause
         
     | 
| 
       34 
34 
     | 
    
         
             
            metadata: {}
         
     | 
| 
       35 
     | 
    
         
            -
            post_install_message:
         
     | 
| 
      
 35 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
       36 
36 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       37 
37 
     | 
    
         
             
            require_paths:
         
     | 
| 
       38 
38 
     | 
    
         
             
            - lib
         
     | 
| 
         @@ -47,8 +47,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       47 
47 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       48 
48 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       49 
49 
     | 
    
         
             
            requirements: []
         
     | 
| 
       50 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
       51 
     | 
    
         
            -
            signing_key:
         
     | 
| 
      
 50 
     | 
    
         
            +
            rubygems_version: 3.1.4
         
     | 
| 
      
 51 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
       52 
52 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       53 
53 
     | 
    
         
             
            summary: A subclass of Object includes Comparable module for handling dates.
         
     | 
| 
       54 
54 
     | 
    
         
             
            test_files: []
         
     |