home_run 1.0.7-x86-mswin32-60 → 1.0.9-x86-mswin32-60

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.
data/CHANGELOG CHANGED
@@ -1,3 +1,11 @@
1
+ === 1.0.9 (2013-03-19)
2
+
3
+ * Add Date::Infinity implementation (jeremyevans) (#50)
4
+
5
+ === 1.0.8 (2013-02-28)
6
+
7
+ * Switch %i to %d in format strings to work on ruby 2.0 (jeremyevans)
8
+
1
9
  === 1.0.7 (2012-08-08)
2
10
 
3
11
  * Make DateTime constructors handle fractional seconds in seconds argument (jeremyevans)
data/README.rdoc CHANGED
@@ -4,6 +4,14 @@ home_run is an implementation of ruby's Date/DateTime classes in C,
4
4
  with much better performance (20-200x) than the version in the
5
5
  standard library, while being almost completely compatible.
6
6
 
7
+ == Not necessary in 1.9.3+
8
+
9
+ Ruby 1.9.3+ replaced the old date library with one written in C,
10
+ based partially on the design of home_run (but implemented
11
+ differently). In most cases, if you are using Ruby 1.9.3+, you
12
+ will not need to use home_run.
13
+
14
+
7
15
  == Performance increase (microbenchmarks)
8
16
 
9
17
  The speedup you'll get depends mostly on your version of ruby, but
data/bench/cpu_bench.rb CHANGED
@@ -7,7 +7,7 @@ compare(".commercial"){|dc| n.times{dc.commercial(2010, 1, 1)}}
7
7
  compare(".gregorian_leap?"){|dc| n.times{dc.gregorian_leap?(2000)}}
8
8
  compare(".jd"){|dc| n.times{dc.jd(2010)}}
9
9
  compare(".julian_leap?"){|dc| n.times{dc.julian_leap?(2000)}}
10
- compare(".new!"){|dc| n.times{dc.new!(2012)}}
10
+ compare(".new!"){|dc| n.times{dc.new!(2012)}} if RUBY_VERSION < '1.9.3'
11
11
  compare(".ordinal"){|dc| n.times{dc.ordinal(2012, 100)}}
12
12
  compare(".parse"){|dc| n.times{dc.parse('2010-12-13')}}
13
13
  compare(".strptime"){|dc| n.times{dc.strptime('fri jan 5 00:00:00 2007', '%c')}}
@@ -22,7 +22,7 @@ dt_compare("._strptime"){|dc| n.times{dc._strptime('fri jan 5 13:43:37 2007', '%
22
22
  dt_compare(".civil"){|dc| n.times{dc.civil(2010, 1, 1, 13, 43, 57)}}
23
23
  dt_compare(".commercial"){|dc| n.times{dc.commercial(2010, 1, 1, 13, 43, 57)}}
24
24
  dt_compare(".jd"){|dc| n.times{dc.jd(2010, 13, 43, 57)}}
25
- dt_compare(".new!"){|dc| n.times{dc.new!(201013.3, -8/24.0)}}
25
+ dt_compare(".new!"){|dc| n.times{dc.new!(201013.3, -8/24.0)}} if RUBY_VERSION < '1.9.3'
26
26
  dt_compare(".now"){|dc| n.times{dc.now}}
27
27
  dt_compare(".ordinal"){|dc| n.times{dc.ordinal(2010, 1, 13, 43, 57)}}
28
28
  dt_compare(".parse"){|dc| n.times{dc.parse('2010-12-13T13:43:57+08:00')}}
@@ -257,7 +257,7 @@ int rhrd__valid_civil(rhrd_t *d, long year, long month, long day, int overlimit_
257
257
 
258
258
  if(!rhrd__valid_civil_limits(year, month, day)) {
259
259
  if (overlimit_raise == RHR_OVERLIMIT_RAISE) {
260
- rb_raise(rb_eRangeError, "date out of range: year = %li, month = %li, day = %li", year, month, day);
260
+ rb_raise(rb_eRangeError, "date out of range: year = %ld, month = %ld, day = %ld", year, month, day);
261
261
  }
262
262
  return 0;
263
263
  }
@@ -779,49 +779,49 @@ VALUE rhrd__strftime(rhrdt_t *d, const char * fmt, int fmt_len) {
779
779
  cp += sprintf(str + cp, "%s", rhrd__month_names[d->month]);
780
780
  break;
781
781
  case 'c':
782
- cp += sprintf(str + cp, "%s %s %2i %02i:%02i:%02i %04li", rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)], rhrd__abbr_month_names[d->month], (int)d->day, (int)d->hour, (int)d->minute, (int)d->second, d->year);
782
+ cp += sprintf(str + cp, "%s %s %2d %02d:%02d:%02d %04ld", rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)], rhrd__abbr_month_names[d->month], (int)d->day, (int)d->hour, (int)d->minute, (int)d->second, d->year);
783
783
  break;
784
784
  case 'C':
785
- cp += sprintf(str + cp, "%02li", d->year / 100);
785
+ cp += sprintf(str + cp, "%02ld", d->year / 100);
786
786
  break;
787
787
  case 'd':
788
- cp += sprintf(str + cp, "%02i", (int)d->day);
788
+ cp += sprintf(str + cp, "%02d", (int)d->day);
789
789
  break;
790
790
  case 'e':
791
- cp += sprintf(str + cp, "%2i", (int)d->day);
791
+ cp += sprintf(str + cp, "%2d", (int)d->day);
792
792
  break;
793
793
  case 'F':
794
- cp += sprintf(str + cp, "%04li-%02i-%02i", d->year, (int)d->month, (int)d->day);
794
+ cp += sprintf(str + cp, "%04ld-%02d-%02d", d->year, (int)d->month, (int)d->day);
795
795
  break;
796
796
  case 'g':
797
- cp += sprintf(str + cp, "%02li", cd.year % 100);
797
+ cp += sprintf(str + cp, "%02ld", cd.year % 100);
798
798
  break;
799
799
  case 'G':
800
- cp += sprintf(str + cp, "%04li", cd.year);
800
+ cp += sprintf(str + cp, "%04ld", cd.year);
801
801
  break;
802
802
  case 'H':
803
- cp += sprintf(str + cp, "%02i", (int)d->hour);
803
+ cp += sprintf(str + cp, "%02d", (int)d->hour);
804
804
  break;
805
805
  case 'I':
806
- cp += sprintf(str + cp, "%02i", (int)((d->hour == 12 || d->hour == 0) ? 12 : d->hour % 12));
806
+ cp += sprintf(str + cp, "%02d", (int)((d->hour == 12 || d->hour == 0) ? 12 : d->hour % 12));
807
807
  break;
808
808
  case 'j':
809
- cp += sprintf(str + cp, "%03li", rhrd__ordinal_day(d->year, d->month, d->day));
809
+ cp += sprintf(str + cp, "%03ld", rhrd__ordinal_day(d->year, d->month, d->day));
810
810
  break;
811
811
  case 'k':
812
- cp += sprintf(str + cp, "%2i", (int)(d->hour));
812
+ cp += sprintf(str + cp, "%2d", (int)(d->hour));
813
813
  break;
814
814
  case 'l':
815
- cp += sprintf(str + cp, "%2i", (int)((d->hour == 12 || d->hour == 0) ? 12 : d->hour % 12));
815
+ cp += sprintf(str + cp, "%2d", (int)((d->hour == 12 || d->hour == 0) ? 12 : d->hour % 12));
816
816
  break;
817
817
  case 'L':
818
818
  cp += sprintf(str + cp, "%03" PRId64, (d->nanos % RHR_NANOS_PER_SECOND)/1000000);
819
819
  break;
820
820
  case 'm':
821
- cp += sprintf(str + cp, "%02i", (int)(d->month));
821
+ cp += sprintf(str + cp, "%02d", (int)(d->month));
822
822
  break;
823
823
  case 'M':
824
- cp += sprintf(str + cp, "%02i", (int)(d->minute));
824
+ cp += sprintf(str + cp, "%02d", (int)(d->minute));
825
825
  break;
826
826
  case 'N':
827
827
  cp += sprintf(str + cp, "%09" PRId64, (d->nanos % RHR_NANOS_PER_SECOND));
@@ -839,60 +839,60 @@ VALUE rhrd__strftime(rhrdt_t *d, const char * fmt, int fmt_len) {
839
839
  cp += sprintf(str + cp, "%" PRId64, rhrd__jd_to_unix((long long)d->jd) * 1000 + d->nanos/RHR_NANOS_PER_MILLISECOND - d->offset * 60000);
840
840
  break;
841
841
  case 'r':
842
- cp += sprintf(str + cp, "%2i:%02i:%02i %s", (int)((d->hour == 12 || d->hour == 0) ? 12 : d->hour % 12), (int)d->minute, (int)d->second, d->hour >= 12 ? "PM" : "AM");
842
+ cp += sprintf(str + cp, "%2d:%02d:%02d %s", (int)((d->hour == 12 || d->hour == 0) ? 12 : d->hour % 12), (int)d->minute, (int)d->second, d->hour >= 12 ? "PM" : "AM");
843
843
  break;
844
844
  case 'R':
845
- cp += sprintf(str + cp, "%02i:%02i", (int)d->hour, (int)d->minute);
845
+ cp += sprintf(str + cp, "%02d:%02d", (int)d->hour, (int)d->minute);
846
846
  break;
847
847
  case 's':
848
848
  cp += sprintf(str + cp, "%" PRId64, rhrd__jd_to_unix((long long)d->jd) + d->nanos/RHR_NANOS_PER_SECOND - d->offset * 60);
849
849
  break;
850
850
  case 'S':
851
- cp += sprintf(str + cp, "%02i", (int)d->second);
851
+ cp += sprintf(str + cp, "%02d", (int)d->second);
852
852
  break;
853
853
  case 't':
854
854
  cp += sprintf(str + cp, "\t");
855
855
  break;
856
856
  case 'X':
857
857
  case 'T':
858
- cp += sprintf(str + cp, "%02i:%02i:%02i", (int)d->hour, (int)d->minute, (int)d->second);
858
+ cp += sprintf(str + cp, "%02d:%02d:%02d", (int)d->hour, (int)d->minute, (int)d->second);
859
859
  break;
860
860
  case 'u':
861
- cp += sprintf(str + cp, "%i", (int)cd.day);
861
+ cp += sprintf(str + cp, "%d", (int)cd.day);
862
862
  break;
863
863
  case 'U':
864
- cp += sprintf(str + cp, "%li", rhrd__jd_to_weeknum(d->jd, 0));
864
+ cp += sprintf(str + cp, "%ld", rhrd__jd_to_weeknum(d->jd, 0));
865
865
  break;
866
866
  case 'v':
867
- cp += sprintf(str + cp, "%2i-%s-%04li", (int)d->day, rhrd__abbr_month_names[d->month], d->year);
867
+ cp += sprintf(str + cp, "%2d-%s-%04ld", (int)d->day, rhrd__abbr_month_names[d->month], d->year);
868
868
  break;
869
869
  case 'V':
870
- cp += sprintf(str + cp, "%02i", (int)cd.month);
870
+ cp += sprintf(str + cp, "%02d", (int)cd.month);
871
871
  break;
872
872
  case 'w':
873
- cp += sprintf(str + cp, "%li", rhrd__jd_to_wday(d->jd));
873
+ cp += sprintf(str + cp, "%ld", rhrd__jd_to_wday(d->jd));
874
874
  break;
875
875
  case 'W':
876
- cp += sprintf(str + cp, "%li", rhrd__jd_to_weeknum(d->jd, 1));
876
+ cp += sprintf(str + cp, "%ld", rhrd__jd_to_weeknum(d->jd, 1));
877
877
  break;
878
878
  case 'D':
879
879
  case 'x':
880
- cp += sprintf(str + cp, "%02i/%02i/%02li", (int)d->month, (int)d->day, d->year % 100);
880
+ cp += sprintf(str + cp, "%02d/%02d/%02ld", (int)d->month, (int)d->day, d->year % 100);
881
881
  break;
882
882
  case 'y':
883
- cp += sprintf(str + cp, "%02li", d->year % 100);
883
+ cp += sprintf(str + cp, "%02ld", d->year % 100);
884
884
  break;
885
885
  case 'Y':
886
- cp += sprintf(str + cp, "%04li", d->year);
886
+ cp += sprintf(str + cp, "%04ld", d->year);
887
887
  break;
888
888
  case 'z':
889
- cp += sprintf(str + cp, "%+03i%02i", d->offset/60, abs(d->offset % 60));
889
+ cp += sprintf(str + cp, "%+03d%02d", d->offset/60, abs(d->offset % 60));
890
890
  break;
891
891
  case 'Z':
892
- cp += sprintf(str + cp, "%+03i:%02i", d->offset/60, abs(d->offset % 60));
892
+ cp += sprintf(str + cp, "%+03d:%02d", d->offset/60, abs(d->offset % 60));
893
893
  break;
894
894
  case '+':
895
- cp += sprintf(str + cp, "%s %s %2i %02i:%02i:%02i %+03i:%02i %04li", rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)], rhrd__abbr_month_names[d->month], (int)d->day, (int)d->hour, (int)d->minute, (int)d->second, d->offset/60, abs(d->offset % 60), d->year);
895
+ cp += sprintf(str + cp, "%s %s %2d %02d:%02d:%02d %+03d:%02d %04ld", rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)], rhrd__abbr_month_names[d->month], (int)d->day, (int)d->hour, (int)d->minute, (int)d->second, d->offset/60, abs(d->offset % 60), d->year);
896
896
  break;
897
897
  default:
898
898
  str[cp] = c;
@@ -1509,7 +1509,7 @@ static VALUE rhrd_s__strptime(int argc, VALUE *argv, VALUE klass) {
1509
1509
  case 1:
1510
1510
  break;
1511
1511
  default:
1512
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
1512
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
1513
1513
  break;
1514
1514
  }
1515
1515
 
@@ -1557,12 +1557,12 @@ static VALUE rhrd_s_civil(int argc, VALUE *argv, VALUE klass) {
1557
1557
  d->flags = RHR_HAVE_JD;
1558
1558
  return rd;
1559
1559
  default:
1560
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 4", argc);
1560
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 4", argc);
1561
1561
  break;
1562
1562
  }
1563
1563
 
1564
1564
  if (!rhrd__valid_civil(d, year, month, day, RHR_OVERLIMIT_RAISE)) {
1565
- rb_raise(rb_eArgError, "invalid date (year: %li, month: %li, day: %li)", year, month, day);
1565
+ rb_raise(rb_eArgError, "invalid date (year: %ld, month: %ld, day: %ld)", year, month, day);
1566
1566
  }
1567
1567
  return rd;
1568
1568
  }
@@ -1606,12 +1606,12 @@ static VALUE rhrd_s_commercial(int argc, VALUE *argv, VALUE klass) {
1606
1606
  break;
1607
1607
  #endif
1608
1608
  default:
1609
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 4", argc);
1609
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 4", argc);
1610
1610
  break;
1611
1611
  }
1612
1612
 
1613
1613
  if(!rhrd__valid_commercial(d, cwyear, cweek, cwday, RHR_OVERLIMIT_RAISE)) {
1614
- rb_raise(rb_eArgError, "invalid date (cwyear: %li, cweek: %li, cwday: %li)", cwyear, cweek, cwday);
1614
+ rb_raise(rb_eArgError, "invalid date (cwyear: %ld, cweek: %ld, cwday: %ld)", cwyear, cweek, cwday);
1615
1615
  }
1616
1616
  return rd;
1617
1617
  }
@@ -1645,7 +1645,7 @@ static VALUE rhrd_s_jd (int argc, VALUE *argv, VALUE klass) {
1645
1645
  d->jd = NUM2LONG(argv[0]);
1646
1646
  break;
1647
1647
  default:
1648
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 2", argc);
1648
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 2", argc);
1649
1649
  break;
1650
1650
  }
1651
1651
  RHR_CHECK_JD(d)
@@ -1683,7 +1683,7 @@ static VALUE rhrd_s_new_b(int argc, VALUE *argv, VALUE klass) {
1683
1683
  d->jd = NUM2LONG(argv[0]);
1684
1684
  break;
1685
1685
  default:
1686
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
1686
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
1687
1687
  break;
1688
1688
  }
1689
1689
  RHR_CHECK_JD(d)
@@ -1713,14 +1713,14 @@ static VALUE rhrd_s_ordinal(int argc, VALUE *argv, VALUE klass) {
1713
1713
  case 1:
1714
1714
  year = NUM2LONG(argv[0]);
1715
1715
  if(!rhrd__valid_ordinal(d, year, day, RHR_OVERLIMIT_RAISE)) {
1716
- rb_raise(rb_eArgError, "invalid date (year: %li, yday: %li)", year, day);
1716
+ rb_raise(rb_eArgError, "invalid date (year: %ld, yday: %ld)", year, day);
1717
1717
  }
1718
1718
  break;
1719
1719
  case 0:
1720
1720
  d->flags = RHR_HAVE_JD;
1721
1721
  return rd;
1722
1722
  default:
1723
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
1723
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
1724
1724
  break;
1725
1725
  }
1726
1726
 
@@ -1754,7 +1754,7 @@ static VALUE rhrd_s_parse(int argc, VALUE *argv, VALUE klass) {
1754
1754
  case 3:
1755
1755
  return rhrd__from_hash(klass, rb_funcall(klass, rhrd_id__parse, 2, argv[0], argv[1]));
1756
1756
  default:
1757
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 3)", argc);
1757
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 3)", argc);
1758
1758
  break;
1759
1759
  }
1760
1760
  }
@@ -1786,7 +1786,7 @@ static VALUE rhrd_s_strptime(int argc, VALUE *argv, VALUE klass) {
1786
1786
  argc = 2;
1787
1787
  break;
1788
1788
  default:
1789
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 3)", argc);
1789
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 3)", argc);
1790
1790
  break;
1791
1791
  }
1792
1792
 
@@ -1812,7 +1812,7 @@ static VALUE rhrd_s_today(int argc, VALUE *argv, VALUE klass) {
1812
1812
  case 1:
1813
1813
  break;
1814
1814
  default:
1815
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
1815
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
1816
1816
  break;
1817
1817
  }
1818
1818
 
@@ -1848,7 +1848,7 @@ static VALUE rhrd_s_valid_civil_q(int argc, VALUE *argv, VALUE klass) {
1848
1848
  }
1849
1849
  break;
1850
1850
  default:
1851
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 4", argc);
1851
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 4", argc);
1852
1852
  break;
1853
1853
  }
1854
1854
 
@@ -1888,7 +1888,7 @@ static VALUE rhrd_s_valid_commercial_q(int argc, VALUE *argv, VALUE klass) {
1888
1888
  }
1889
1889
  break;
1890
1890
  default:
1891
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 4", argc);
1891
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 4", argc);
1892
1892
  break;
1893
1893
  }
1894
1894
 
@@ -1913,7 +1913,7 @@ static VALUE rhrd_s_valid_jd_q(int argc, VALUE *argv, VALUE klass) {
1913
1913
  case 2:
1914
1914
  break;
1915
1915
  default:
1916
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 2", argc);
1916
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 2", argc);
1917
1917
  break;
1918
1918
  }
1919
1919
 
@@ -1952,7 +1952,7 @@ static VALUE rhrd_s_valid_ordinal_q(int argc, VALUE *argv, VALUE klass) {
1952
1952
  }
1953
1953
  break;
1954
1954
  default:
1955
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
1955
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
1956
1956
  break;
1957
1957
  }
1958
1958
 
@@ -2088,7 +2088,7 @@ static VALUE rhrd_asctime(VALUE self) {
2088
2088
  RHR_FILL_JD(d)
2089
2089
 
2090
2090
  s = rb_str_buf_new(128);
2091
- len = snprintf(RSTRING_PTR(s), 128, "%s %s %2i 00:00:00 %04li",
2091
+ len = snprintf(RSTRING_PTR(s), 128, "%s %s %2d 00:00:00 %04ld",
2092
2092
  rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)],
2093
2093
  rhrd__abbr_month_names[d->month],
2094
2094
  (int)d->day,
@@ -2336,7 +2336,7 @@ static VALUE rhrd_inspect(VALUE self) {
2336
2336
  RHR_FILL_CIVIL(d)
2337
2337
 
2338
2338
  s = rb_str_buf_new(128);
2339
- len = snprintf(RSTRING_PTR(s), 128, "#<Date %04li-%02i-%02i>",
2339
+ len = snprintf(RSTRING_PTR(s), 128, "#<Date %04ld-%02d-%02d>",
2340
2340
  d->year, (int)d->month, (int)d->day);
2341
2341
  if (len == -1 || len > 127) {
2342
2342
  rb_raise(rb_eNoMemError, "in Date#inspect (in snprintf)");
@@ -2457,7 +2457,7 @@ static VALUE rhrd_new_start(int argc, VALUE *argv, VALUE self) {
2457
2457
  case 1:
2458
2458
  break;
2459
2459
  default:
2460
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2460
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2461
2461
  break;
2462
2462
  }
2463
2463
 
@@ -2518,7 +2518,7 @@ static VALUE rhrd_step(int argc, VALUE *argv, VALUE self) {
2518
2518
  }
2519
2519
  break;
2520
2520
  default:
2521
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 2", argc);
2521
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 2", argc);
2522
2522
  break;
2523
2523
  }
2524
2524
  rlimit = argv[0];
@@ -2642,7 +2642,7 @@ static VALUE rhrd_strftime(int argc, VALUE *argv, VALUE self) {
2642
2642
  r = rb_str_to_str(argv[0]);
2643
2643
  break;
2644
2644
  default:
2645
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2645
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2646
2646
  break;
2647
2647
  }
2648
2648
 
@@ -2674,7 +2674,7 @@ static VALUE rhrd_to_s(VALUE self) {
2674
2674
  RHR_FILL_CIVIL(d)
2675
2675
 
2676
2676
  s = rb_str_buf_new(128);
2677
- len = snprintf(RSTRING_PTR(s), 128, "%04li-%02i-%02i",
2677
+ len = snprintf(RSTRING_PTR(s), 128, "%04ld-%02d-%02d",
2678
2678
  d->year, (int)d->month, (int)d->day);
2679
2679
  if (len == -1 || len > 127) {
2680
2680
  rb_raise(rb_eNoMemError, "in Date#to_s (in snprintf)");
@@ -3040,7 +3040,7 @@ static VALUE rhrd_s_httpdate(int argc, VALUE *argv, VALUE klass) {
3040
3040
  case 2:
3041
3041
  return rhrd__from_hash(klass, rb_funcall(klass, rhrd_id__httpdate, 1, argv[0]));
3042
3042
  default:
3043
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
3043
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
3044
3044
  break;
3045
3045
  }
3046
3046
  }
@@ -3074,7 +3074,7 @@ static VALUE rhrd_s_iso8601(int argc, VALUE *argv, VALUE klass) {
3074
3074
  case 2:
3075
3075
  return rhrd__from_hash(klass, rb_funcall(klass, rhrd_id__iso8601, 1, argv[0]));
3076
3076
  default:
3077
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
3077
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
3078
3078
  break;
3079
3079
  }
3080
3080
  }
@@ -3108,7 +3108,7 @@ static VALUE rhrd_s_jisx0301(int argc, VALUE *argv, VALUE klass) {
3108
3108
  case 2:
3109
3109
  return rhrd__from_hash(klass, rb_funcall(klass, rhrd_id__jisx0301, 1, argv[0]));
3110
3110
  default:
3111
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
3111
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
3112
3112
  break;
3113
3113
  }
3114
3114
  }
@@ -3142,7 +3142,7 @@ static VALUE rhrd_s_rfc2822(int argc, VALUE *argv, VALUE klass) {
3142
3142
  case 2:
3143
3143
  return rhrd__from_hash(klass, rb_funcall(klass, rhrd_id__rfc2822, 1, argv[0]));
3144
3144
  default:
3145
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
3145
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
3146
3146
  break;
3147
3147
  }
3148
3148
  }
@@ -3176,7 +3176,7 @@ static VALUE rhrd_s_rfc3339(int argc, VALUE *argv, VALUE klass) {
3176
3176
  case 2:
3177
3177
  return rhrd__from_hash(klass, rb_funcall(klass, rhrd_id__rfc3339, 1, argv[0]));
3178
3178
  default:
3179
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
3179
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
3180
3180
  break;
3181
3181
  }
3182
3182
  }
@@ -3210,7 +3210,7 @@ static VALUE rhrd_s_xmlschema(int argc, VALUE *argv, VALUE klass) {
3210
3210
  case 2:
3211
3211
  return rhrd__from_hash(klass, rb_funcall(klass, rhrd_id__xmlschema, 1, argv[0]));
3212
3212
  default:
3213
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
3213
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
3214
3214
  break;
3215
3215
  }
3216
3216
  }
@@ -3235,7 +3235,7 @@ static VALUE rhrd_httpdate(VALUE self) {
3235
3235
  RHR_FILL_JD(d)
3236
3236
 
3237
3237
  s = rb_str_buf_new(128);
3238
- len = snprintf(RSTRING_PTR(s), 128, "%s, %02i %s %04li 00:00:00 GMT",
3238
+ len = snprintf(RSTRING_PTR(s), 128, "%s, %02d %s %04ld 00:00:00 GMT",
3239
3239
  rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)],
3240
3240
  (int)d->day,
3241
3241
  rhrd__abbr_month_names[d->month],
@@ -3268,7 +3268,7 @@ static VALUE rhrd_jisx0301(VALUE self) {
3268
3268
 
3269
3269
  s = rb_str_buf_new(128);
3270
3270
  if (d->jd < 2405160) {
3271
- len = snprintf(RSTRING_PTR(s), 128, "%04li-%02i-%02i", d->year, (int)d->month, (int)d->day);
3271
+ len = snprintf(RSTRING_PTR(s), 128, "%04ld-%02d-%02d", d->year, (int)d->month, (int)d->day);
3272
3272
  } else {
3273
3273
  if (d->jd >= 2447535) {
3274
3274
  c = 'H';
@@ -3283,7 +3283,7 @@ static VALUE rhrd_jisx0301(VALUE self) {
3283
3283
  c = 'M';
3284
3284
  year = d->year - 1867;
3285
3285
  }
3286
- len = snprintf(RSTRING_PTR(s), 128, "%c%02li.%02i.%02i", c, year, (int)d->month, (int)d->day);
3286
+ len = snprintf(RSTRING_PTR(s), 128, "%c%02ld.%02d.%02d", c, year, (int)d->month, (int)d->day);
3287
3287
  }
3288
3288
  if (len == -1 || len > 127) {
3289
3289
  rb_raise(rb_eNoMemError, "in Date#jisx0301 (in snprintf)");
@@ -3315,7 +3315,7 @@ static VALUE rhrd_next_day(int argc, VALUE *argv, VALUE self) {
3315
3315
  i = NUM2LONG(argv[0]);
3316
3316
  break;
3317
3317
  default:
3318
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
3318
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
3319
3319
  break;
3320
3320
  }
3321
3321
 
@@ -3345,7 +3345,7 @@ static VALUE rhrd_next_month(int argc, VALUE *argv, VALUE self) {
3345
3345
  i = NUM2LONG(argv[0]);
3346
3346
  break;
3347
3347
  default:
3348
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
3348
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
3349
3349
  break;
3350
3350
  }
3351
3351
 
@@ -3375,7 +3375,7 @@ static VALUE rhrd_next_year(int argc, VALUE *argv, VALUE self) {
3375
3375
  i = NUM2LONG(argv[0]);
3376
3376
  break;
3377
3377
  default:
3378
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
3378
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
3379
3379
  break;
3380
3380
  }
3381
3381
 
@@ -3405,7 +3405,7 @@ static VALUE rhrd_prev_day(int argc, VALUE *argv, VALUE self) {
3405
3405
  i = -NUM2LONG(argv[0]);
3406
3406
  break;
3407
3407
  default:
3408
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
3408
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
3409
3409
  break;
3410
3410
  }
3411
3411
 
@@ -3435,7 +3435,7 @@ static VALUE rhrd_prev_month(int argc, VALUE *argv, VALUE self) {
3435
3435
  i = -NUM2LONG(argv[0]);
3436
3436
  break;
3437
3437
  default:
3438
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
3438
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
3439
3439
  break;
3440
3440
  }
3441
3441
 
@@ -3465,7 +3465,7 @@ static VALUE rhrd_prev_year(int argc, VALUE *argv, VALUE self) {
3465
3465
  i = -NUM2LONG(argv[0]);
3466
3466
  break;
3467
3467
  default:
3468
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
3468
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
3469
3469
  break;
3470
3470
  }
3471
3471
 
@@ -3490,7 +3490,7 @@ static VALUE rhrd_rfc2822(VALUE self) {
3490
3490
  RHR_FILL_JD(d)
3491
3491
 
3492
3492
  s = rb_str_buf_new(128);
3493
- len = snprintf(RSTRING_PTR(s), 128, "%s, %i %s %04li 00:00:00 +0000",
3493
+ len = snprintf(RSTRING_PTR(s), 128, "%s, %d %s %04ld 00:00:00 +0000",
3494
3494
  rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)],
3495
3495
  (int)d->day,
3496
3496
  rhrd__abbr_month_names[d->month],
@@ -3519,7 +3519,7 @@ static VALUE rhrd_rfc3339(VALUE self) {
3519
3519
  RHR_FILL_CIVIL(d)
3520
3520
 
3521
3521
  s = rb_str_buf_new(128);
3522
- len = snprintf(RSTRING_PTR(s), 128, "%04li-%02i-%02iT00:00:00+00:00", d->year, (int)d->month, (int)d->day);
3522
+ len = snprintf(RSTRING_PTR(s), 128, "%04ld-%02d-%02dT00:00:00+00:00", d->year, (int)d->month, (int)d->day);
3523
3523
  if (len == -1 || len > 127) {
3524
3524
  rb_raise(rb_eNoMemError, "in Date#rfc3339 (in snprintf)");
3525
3525
  }
@@ -3709,7 +3709,7 @@ static VALUE rhrd_s_ajd_to_jd(int argc, VALUE *argv, VALUE klass) {
3709
3709
  case 2:
3710
3710
  break;
3711
3711
  default:
3712
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 2", argc);
3712
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 2", argc);
3713
3713
  break;
3714
3714
  }
3715
3715
 
@@ -3746,7 +3746,7 @@ static VALUE rhrd_s_civil_to_jd(int argc, VALUE *argv, VALUE klass) {
3746
3746
  d.day = (unsigned char)NUM2LONG(argv[2]);
3747
3747
  break;
3748
3748
  default:
3749
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 4", argc);
3749
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 4", argc);
3750
3750
  break;
3751
3751
  }
3752
3752
  d.flags = RHR_HAVE_CIVIL;
@@ -3771,7 +3771,7 @@ static VALUE rhrd_s_commercial_to_jd(int argc, VALUE *argv, VALUE klass) {
3771
3771
  jd = rhrd__commercial_to_jd(NUM2LONG(argv[0]), NUM2LONG(argv[1]), NUM2LONG(argv[2]));
3772
3772
  break;
3773
3773
  default:
3774
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 4", argc);
3774
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 4", argc);
3775
3775
  break;
3776
3776
  }
3777
3777
 
@@ -3830,7 +3830,7 @@ static VALUE rhrd_s_jd_to_ajd(int argc, VALUE *argv, VALUE klass) {
3830
3830
  case 3:
3831
3831
  break;
3832
3832
  default:
3833
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
3833
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
3834
3834
  break;
3835
3835
  }
3836
3836
  return argv[0];
@@ -3853,7 +3853,7 @@ static VALUE rhrd_s_jd_to_civil(int argc, VALUE *argv, VALUE klass) {
3853
3853
  d.jd = NUM2LONG(argv[0]);
3854
3854
  break;
3855
3855
  default:
3856
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
3856
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
3857
3857
  break;
3858
3858
  }
3859
3859
  RHR_FILL_CIVIL(&d)
@@ -3877,7 +3877,7 @@ static VALUE rhrd_s_jd_to_commercial(int argc, VALUE *argv, VALUE klass) {
3877
3877
  d.jd = NUM2LONG(argv[0]);
3878
3878
  break;
3879
3879
  default:
3880
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
3880
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
3881
3881
  break;
3882
3882
  }
3883
3883
  rhrd__fill_commercial(&d);
@@ -3922,7 +3922,7 @@ static VALUE rhrd_s_jd_to_ordinal(int argc, VALUE *argv, VALUE klass) {
3922
3922
  d.jd = NUM2LONG(argv[0]);
3923
3923
  break;
3924
3924
  default:
3925
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
3925
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
3926
3926
  break;
3927
3927
  }
3928
3928
  RHR_FILL_CIVIL(&d)
@@ -3991,7 +3991,7 @@ static VALUE rhrd_s_ordinal_to_jd(int argc, VALUE *argv, VALUE klass) {
3991
3991
  return LONG2NUM(rhrd__ymd_to_jd(NUM2LONG(argv[0]), 1, NUM2LONG(argv[1])));
3992
3992
  break;
3993
3993
  default:
3994
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
3994
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
3995
3995
  break;
3996
3996
  }
3997
3997
  }
@@ -133,8 +133,8 @@ so that no calculations can overflow.
133
133
 
134
134
  #define RHR_SPACE_SHIP(x, l, r) if (l < r) { x = -1; } else if (l == r) { x = 0; } else { x = 1; }
135
135
 
136
- #define RHR_CHECK_JD(d) if ((d->jd > RHR_JD_MAX) || (d->jd < RHR_JD_MIN)) { rb_raise(rb_eRangeError, "date out of range: jd = %li", d->jd);}
137
- #define RHR_CHECK_CIVIL(d) if (!rhrd__valid_civil_limits(d->year, d->month, d->day)) { rb_raise(rb_eRangeError, "date out of range: year = %li, month = %i, day = %i", d->year, (int)d->month, (int)d->day);}
136
+ #define RHR_CHECK_JD(d) if ((d->jd > RHR_JD_MAX) || (d->jd < RHR_JD_MIN)) { rb_raise(rb_eRangeError, "date out of range: jd = %ld", d->jd);}
137
+ #define RHR_CHECK_CIVIL(d) if (!rhrd__valid_civil_limits(d->year, d->month, d->day)) { rb_raise(rb_eRangeError, "date out of range: year = %ld, month = %d, day = %d", d->year, (int)d->month, (int)d->day);}
138
138
 
139
139
  #define RHR_CACHED_IV(self, iv) VALUE v = rb_ivar_get(self, iv); if (RTEST(v)) {return v;}
140
140
 
@@ -102,7 +102,7 @@ int rhrdt__valid_civil(rhrdt_t *dt, long year, long month, long day) {
102
102
  }
103
103
 
104
104
  if(!rhrd__valid_civil_limits(year, month, day)) {
105
- rb_raise(rb_eRangeError, "datetime out of range: year = %li, month = %li, day = %li", year, month, day);
105
+ rb_raise(rb_eRangeError, "datetime out of range: year = %ld, month = %ld, day = %ld", year, month, day);
106
106
  }
107
107
 
108
108
  dt->year = year;
@@ -607,7 +607,7 @@ static VALUE rhrdt_s__strptime(int argc, VALUE *argv, VALUE klass) {
607
607
  case 1:
608
608
  break;
609
609
  default:
610
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
610
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
611
611
  break;
612
612
  }
613
613
 
@@ -670,12 +670,12 @@ static VALUE rhrdt_s_civil(int argc, VALUE *argv, VALUE klass) {
670
670
  year = NUM2LONG(argv[0]);
671
671
  break;
672
672
  default:
673
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 8", argc);
673
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 8", argc);
674
674
  break;
675
675
  }
676
676
 
677
677
  if (!rhrdt__valid_civil(dt, year, month, day)) {
678
- rb_raise(rb_eArgError, "invalid date (year: %li, month: %li, day: %li)", year, month, day);
678
+ rb_raise(rb_eArgError, "invalid date (year: %ld, month: %ld, day: %ld)", year, month, day);
679
679
  }
680
680
  rhrdt__set_time_nanos(dt, hour, minute, second, nanos, offset);
681
681
  return rdt;
@@ -734,11 +734,11 @@ static VALUE rhrdt_s_commercial(int argc, VALUE *argv, VALUE klass) {
734
734
  break;
735
735
  #endif
736
736
  default:
737
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 8", argc);
737
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 8", argc);
738
738
  break;
739
739
  }
740
740
  if(!rhrdt__valid_commercial(dt, cwyear, cweek, cwday)) {
741
- rb_raise(rb_eArgError, "invalid date (cwyear: %li, cweek: %li, cwday: %li)", cwyear, cweek, cwday);
741
+ rb_raise(rb_eArgError, "invalid date (cwyear: %ld, cweek: %ld, cwday: %ld)", cwyear, cweek, cwday);
742
742
  }
743
743
  rhrdt__set_time_nanos(dt, hour, minute, second, nanos, offset);
744
744
  return rdt;
@@ -782,7 +782,7 @@ static VALUE rhrdt_s_jd(int argc, VALUE *argv, VALUE klass) {
782
782
  dt->jd = NUM2LONG(argv[0]);
783
783
  break;
784
784
  default:
785
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 6", argc);
785
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 6", argc);
786
786
  break;
787
787
  }
788
788
 
@@ -835,7 +835,7 @@ static VALUE rhrdt_s_new_b(int argc, VALUE *argv, VALUE klass) {
835
835
  dt->flags = RHR_HAVE_JD | RHR_HAVE_NANOS;
836
836
  break;
837
837
  default:
838
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 3", argc);
838
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 3", argc);
839
839
  break;
840
840
  }
841
841
 
@@ -859,7 +859,7 @@ static VALUE rhrdt_s_now(int argc, VALUE *argv, VALUE klass) {
859
859
  case 1:
860
860
  break;
861
861
  default:
862
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
862
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
863
863
  break;
864
864
  }
865
865
 
@@ -908,13 +908,13 @@ static VALUE rhrdt_s_ordinal(int argc, VALUE *argv, VALUE klass) {
908
908
  dt->flags = RHR_HAVE_JD | RHR_HAVE_NANOS | RHR_HAVE_HMS;
909
909
  return rdt;
910
910
  default:
911
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 7", argc);
911
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 7", argc);
912
912
  break;
913
913
  }
914
914
 
915
915
  if(!rhrdt__valid_ordinal(dt, year, day)) {
916
916
  RHR_CHECK_JD(dt)
917
- rb_raise(rb_eArgError, "invalid date (year: %li, yday: %li)", year, day);
917
+ rb_raise(rb_eArgError, "invalid date (year: %ld, yday: %ld)", year, day);
918
918
  }
919
919
  rhrdt__set_time_nanos(dt, hour, minute, second, nanos, offset);
920
920
  return rdt;
@@ -948,7 +948,7 @@ static VALUE rhrdt_s_parse(int argc, VALUE *argv, VALUE klass) {
948
948
  rhrdt__fill_from_hash(dt, rb_funcall(klass, rhrd_id__parse, 2, argv[0], argv[1]));
949
949
  break;
950
950
  default:
951
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 3)", argc);
951
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 3)", argc);
952
952
  break;
953
953
  }
954
954
 
@@ -980,7 +980,7 @@ static VALUE rhrdt_s_strptime(int argc, VALUE *argv, VALUE klass) {
980
980
  case 2:
981
981
  break;
982
982
  default:
983
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 3)", argc);
983
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 3)", argc);
984
984
  break;
985
985
  }
986
986
 
@@ -1050,7 +1050,7 @@ static VALUE rhrdt_asctime(VALUE self) {
1050
1050
  RHRDT_FILL_HMS(d)
1051
1051
 
1052
1052
  s = rb_str_buf_new(128);
1053
- len = snprintf(RSTRING_PTR(s), 128, "%s %s %2i %02i:%02i:%02i %04li",
1053
+ len = snprintf(RSTRING_PTR(s), 128, "%s %s %2d %02d:%02d:%02d %04ld",
1054
1054
  rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)],
1055
1055
  rhrd__abbr_month_names[d->month],
1056
1056
  (int)d->day, (int)d->hour, (int)d->minute, (int)d->second,
@@ -1303,7 +1303,7 @@ static VALUE rhrdt_inspect(VALUE self) {
1303
1303
  RHRDT_FILL_HMS(dt)
1304
1304
 
1305
1305
  s = rb_str_buf_new(128);
1306
- len = snprintf(RSTRING_PTR(s), 128, "#<DateTime %04li-%02i-%02iT%02i:%02i:%02i%+03i:%02i>",
1306
+ len = snprintf(RSTRING_PTR(s), 128, "#<DateTime %04ld-%02d-%02dT%02d:%02d:%02d%+03d:%02d>",
1307
1307
  dt->year, (int)dt->month, (int)dt->day, (int)dt->hour, (int)dt->minute, (int)dt->second, dt->offset/60, abs(dt->offset % 60));
1308
1308
  if (len == -1 || len > 127) {
1309
1309
  rb_raise(rb_eNoMemError, "in DateTime#inspect (in snprintf)");
@@ -1431,7 +1431,7 @@ static VALUE rhrdt_new_offset(int argc, VALUE *argv, VALUE self) {
1431
1431
  offset= rhrdt__constructor_offset(rb_obj_class(self), argv[0]);
1432
1432
  break;
1433
1433
  default:
1434
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
1434
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
1435
1435
  break;
1436
1436
  }
1437
1437
  return rhrdt__new_offset(self, offset);
@@ -1560,7 +1560,7 @@ static VALUE rhrdt_step(int argc, VALUE *argv, VALUE self) {
1560
1560
  }
1561
1561
  break;
1562
1562
  default:
1563
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 2", argc);
1563
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 2", argc);
1564
1564
  break;
1565
1565
  }
1566
1566
  rlimit = argv[0];
@@ -1648,7 +1648,7 @@ static VALUE rhrdt_strftime(int argc, VALUE *argv, VALUE self) {
1648
1648
  r = rb_str_to_str(argv[0]);
1649
1649
  break;
1650
1650
  default:
1651
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
1651
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
1652
1652
  break;
1653
1653
  }
1654
1654
 
@@ -1677,7 +1677,7 @@ static VALUE rhrdt_to_s(VALUE self) {
1677
1677
  RHRDT_FILL_HMS(dt)
1678
1678
 
1679
1679
  s = rb_str_buf_new(128);
1680
- len = snprintf(RSTRING_PTR(s), 128, "%04li-%02i-%02iT%02i:%02i:%02i%+03i:%02i",
1680
+ len = snprintf(RSTRING_PTR(s), 128, "%04ld-%02d-%02dT%02d:%02d:%02d%+03d:%02d",
1681
1681
  dt->year, (int)dt->month, (int)dt->day, (int)dt->hour, (int)dt->minute, (int)dt->second, dt->offset/60, abs(dt->offset % 60));
1682
1682
  if (len == -1 || len > 127) {
1683
1683
  rb_raise(rb_eNoMemError, "in DateTime#to_s (in snprintf)");
@@ -1769,7 +1769,7 @@ static VALUE rhrdt_zone(VALUE self) {
1769
1769
  Data_Get_Struct(self, rhrdt_t, dt);
1770
1770
 
1771
1771
  s = rb_str_buf_new(128);
1772
- len = snprintf(RSTRING_PTR(s), 128, "%+03i:%02i", dt->offset/60, abs(dt->offset % 60));
1772
+ len = snprintf(RSTRING_PTR(s), 128, "%+03d:%02d", dt->offset/60, abs(dt->offset % 60));
1773
1773
  if (len == -1 || len > 127) {
1774
1774
  rb_raise(rb_eNoMemError, "in DateTime#zone (in snprintf)");
1775
1775
  }
@@ -1988,7 +1988,7 @@ long rhrdt__add_iso_time_format(rhrdt_t *dt, char *str, long len, long i) {
1988
1988
  i = 9;
1989
1989
  }
1990
1990
 
1991
- l = snprintf(str + len, (size_t)(128 - len), "T%02i:%02i:%02i", (int)dt->hour, (int)dt->minute, (int)dt->second);
1991
+ l = snprintf(str + len, (size_t)(128 - len), "T%02d:%02d:%02d", (int)dt->hour, (int)dt->minute, (int)dt->second);
1992
1992
  if (l == -1 || l > 127) {
1993
1993
  rb_raise(rb_eNoMemError, "in DateTime formatting method (in snprintf)");
1994
1994
  }
@@ -2003,7 +2003,7 @@ long rhrdt__add_iso_time_format(rhrdt_t *dt, char *str, long len, long i) {
2003
2003
  len += i + 1;
2004
2004
  }
2005
2005
 
2006
- l = snprintf(str + len, (size_t)(128 - len), "%+03i:%02i", dt->offset/60, abs(dt->offset % 60));
2006
+ l = snprintf(str + len, (size_t)(128 - len), "%+03d:%02d", dt->offset/60, abs(dt->offset % 60));
2007
2007
  if (l == -1 || l > 127) {
2008
2008
  rb_raise(rb_eNoMemError, "in DateTime formatting method (in snprintf)");
2009
2009
  }
@@ -2043,7 +2043,7 @@ static VALUE rhrdt_s_httpdate(int argc, VALUE *argv, VALUE klass) {
2043
2043
  rhrdt__fill_from_hash(d, rb_funcall(klass, rhrd_id__httpdate, 1, argv[0]));
2044
2044
  return rd;
2045
2045
  default:
2046
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
2046
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
2047
2047
  break;
2048
2048
  }
2049
2049
  }
@@ -2078,7 +2078,7 @@ static VALUE rhrdt_s_iso8601(int argc, VALUE *argv, VALUE klass) {
2078
2078
  rhrdt__fill_from_hash(d, rb_funcall(klass, rhrd_id__iso8601, 1, argv[0]));
2079
2079
  return rd;
2080
2080
  default:
2081
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
2081
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
2082
2082
  break;
2083
2083
  }
2084
2084
  }
@@ -2113,7 +2113,7 @@ static VALUE rhrdt_s_jisx0301(int argc, VALUE *argv, VALUE klass) {
2113
2113
  rhrdt__fill_from_hash(d, rb_funcall(klass, rhrd_id__jisx0301, 1, argv[0]));
2114
2114
  return rd;
2115
2115
  default:
2116
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
2116
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
2117
2117
  break;
2118
2118
  }
2119
2119
  }
@@ -2148,7 +2148,7 @@ static VALUE rhrdt_s_rfc2822(int argc, VALUE *argv, VALUE klass) {
2148
2148
  rhrdt__fill_from_hash(d, rb_funcall(klass, rhrd_id__rfc2822, 1, argv[0]));
2149
2149
  return rd;
2150
2150
  default:
2151
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
2151
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
2152
2152
  break;
2153
2153
  }
2154
2154
  }
@@ -2183,7 +2183,7 @@ static VALUE rhrdt_s_rfc3339(int argc, VALUE *argv, VALUE klass) {
2183
2183
  rhrdt__fill_from_hash(d, rb_funcall(klass, rhrd_id__rfc3339, 1, argv[0]));
2184
2184
  return rd;
2185
2185
  default:
2186
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
2186
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
2187
2187
  break;
2188
2188
  }
2189
2189
  }
@@ -2218,7 +2218,7 @@ static VALUE rhrdt_s_xmlschema(int argc, VALUE *argv, VALUE klass) {
2218
2218
  rhrdt__fill_from_hash(d, rb_funcall(klass, rhrd_id__xmlschema, 1, argv[0]));
2219
2219
  return rd;
2220
2220
  default:
2221
- rb_raise(rb_eArgError, "wrong number of arguments (%i for 2)", argc);
2221
+ rb_raise(rb_eArgError, "wrong number of arguments (%d for 2)", argc);
2222
2222
  break;
2223
2223
  }
2224
2224
  }
@@ -2245,7 +2245,7 @@ static VALUE rhrdt_httpdate(VALUE self) {
2245
2245
  RHRDT_FILL_HMS(d)
2246
2246
 
2247
2247
  s = rb_str_buf_new(128);
2248
- len = snprintf(RSTRING_PTR(s), 128, "%s, %02i %s %04li %02i:%02i:%02i GMT",
2248
+ len = snprintf(RSTRING_PTR(s), 128, "%s, %02d %s %04ld %02d:%02d:%02d GMT",
2249
2249
  rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)],
2250
2250
  (int)d->day,
2251
2251
  rhrd__abbr_month_names[d->month],
@@ -2288,14 +2288,14 @@ static VALUE rhrdt_iso8601(int argc, VALUE *argv, VALUE self) {
2288
2288
  i = 0;
2289
2289
  break;
2290
2290
  default:
2291
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2291
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2292
2292
  break;
2293
2293
  }
2294
2294
 
2295
2295
  s = rb_str_buf_new(128);
2296
2296
  str = RSTRING_PTR(s);
2297
2297
 
2298
- len = snprintf(str, 128, "%04li-%02i-%02i", dt->year, (int)dt->month, (int)dt->day);
2298
+ len = snprintf(str, 128, "%04ld-%02d-%02d", dt->year, (int)dt->month, (int)dt->day);
2299
2299
  if (len == -1 || len > 127) {
2300
2300
  rb_raise(rb_eNoMemError, "in DateTime#to_s (in snprintf)");
2301
2301
  }
@@ -2338,7 +2338,7 @@ static VALUE rhrdt_jisx0301(int argc, VALUE *argv, VALUE self) {
2338
2338
  i = 0;
2339
2339
  break;
2340
2340
  default:
2341
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2341
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2342
2342
  break;
2343
2343
  }
2344
2344
 
@@ -2346,7 +2346,7 @@ static VALUE rhrdt_jisx0301(int argc, VALUE *argv, VALUE self) {
2346
2346
  str = RSTRING_PTR(s);
2347
2347
 
2348
2348
  if (d->jd < 2405160) {
2349
- len = snprintf(str, 128, "%04li-%02i-%02i", d->year, (int)d->month, (int)d->day);
2349
+ len = snprintf(str, 128, "%04ld-%02d-%02d", d->year, (int)d->month, (int)d->day);
2350
2350
  } else {
2351
2351
  if (d->jd >= 2447535) {
2352
2352
  c = 'H';
@@ -2361,7 +2361,7 @@ static VALUE rhrdt_jisx0301(int argc, VALUE *argv, VALUE self) {
2361
2361
  c = 'M';
2362
2362
  year = d->year - 1867;
2363
2363
  }
2364
- len = snprintf(RSTRING_PTR(s), 128, "%c%02li.%02i.%02i", c, year, (int)d->month, (int)d->day);
2364
+ len = snprintf(RSTRING_PTR(s), 128, "%c%02ld.%02d.%02d", c, year, (int)d->month, (int)d->day);
2365
2365
  }
2366
2366
  if (len == -1 || len > 127) {
2367
2367
  rb_raise(rb_eNoMemError, "in DateTime#jisx0301 (in snprintf)");
@@ -2395,7 +2395,7 @@ static VALUE rhrdt_next_day(int argc, VALUE *argv, VALUE self) {
2395
2395
  i = NUM2LONG(argv[0]);
2396
2396
  break;
2397
2397
  default:
2398
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2398
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2399
2399
  break;
2400
2400
  }
2401
2401
 
@@ -2426,7 +2426,7 @@ static VALUE rhrdt_next_month(int argc, VALUE *argv, VALUE self) {
2426
2426
  i = NUM2LONG(argv[0]);
2427
2427
  break;
2428
2428
  default:
2429
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2429
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2430
2430
  break;
2431
2431
  }
2432
2432
 
@@ -2457,7 +2457,7 @@ static VALUE rhrdt_next_year(int argc, VALUE *argv, VALUE self) {
2457
2457
  i = NUM2LONG(argv[0]);
2458
2458
  break;
2459
2459
  default:
2460
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2460
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2461
2461
  break;
2462
2462
  }
2463
2463
 
@@ -2488,7 +2488,7 @@ static VALUE rhrdt_prev_day(int argc, VALUE *argv, VALUE self) {
2488
2488
  i = -NUM2LONG(argv[0]);
2489
2489
  break;
2490
2490
  default:
2491
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2491
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2492
2492
  break;
2493
2493
  }
2494
2494
 
@@ -2519,7 +2519,7 @@ static VALUE rhrdt_prev_month(int argc, VALUE *argv, VALUE self) {
2519
2519
  i = -NUM2LONG(argv[0]);
2520
2520
  break;
2521
2521
  default:
2522
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2522
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2523
2523
  break;
2524
2524
  }
2525
2525
 
@@ -2550,7 +2550,7 @@ static VALUE rhrdt_prev_year(int argc, VALUE *argv, VALUE self) {
2550
2550
  i = -NUM2LONG(argv[0]);
2551
2551
  break;
2552
2552
  default:
2553
- rb_raise(rb_eArgError, "wrong number of arguments: %i for 1", argc);
2553
+ rb_raise(rb_eArgError, "wrong number of arguments: %d for 1", argc);
2554
2554
  break;
2555
2555
  }
2556
2556
 
@@ -2576,7 +2576,7 @@ static VALUE rhrdt_rfc2822(VALUE self) {
2576
2576
  RHRDT_FILL_HMS(d)
2577
2577
 
2578
2578
  s = rb_str_buf_new(128);
2579
- len = snprintf(RSTRING_PTR(s), 128, "%s, %i %s %04li %02i:%02i:%02i %+03i%02i",
2579
+ len = snprintf(RSTRING_PTR(s), 128, "%s, %d %s %04ld %02d:%02d:%02d %+03d%02d",
2580
2580
  rhrd__abbr_day_names[rhrd__jd_to_wday(d->jd)],
2581
2581
  (int)d->day,
2582
2582
  rhrd__abbr_month_names[d->month],
data/lib/1.8/date_ext.so CHANGED
Binary file
data/lib/1.9/date_ext.so CHANGED
Binary file
data/lib/date.rb CHANGED
@@ -4,4 +4,59 @@ rescue LoadError
4
4
  raise unless RUBY_PLATFORM =~ /mswin|mingw/
5
5
  require "#{RUBY_VERSION[0...3]}/date_ext"
6
6
  end
7
+
8
+ class Date
9
+ class Infinity < Numeric # :nodoc:
10
+
11
+ include Comparable
12
+
13
+ def initialize(d=1) @d = d <=> 0 end
14
+
15
+ def d() @d end
16
+
17
+ protected :d
18
+
19
+ def zero? () false end
20
+ def finite? () false end
21
+ def infinite? () d.nonzero? end
22
+ def nan? () d.zero? end
23
+
24
+ def abs() self.class.new end
25
+
26
+ def -@ () self.class.new(-d) end
27
+ def +@ () self.class.new(+d) end
28
+
29
+ def <=> (other)
30
+ case other
31
+ when Infinity; return d <=> other.d
32
+ when Numeric; return d
33
+ else
34
+ begin
35
+ l, r = other.coerce(self)
36
+ return l <=> r
37
+ rescue NoMethodError
38
+ end
39
+ end
40
+ nil
41
+ end
42
+
43
+ def coerce(other)
44
+ case other
45
+ when Numeric; return -d, d
46
+ else
47
+ super
48
+ end
49
+ end
50
+
51
+ def to_f
52
+ return 0 if @d == 0
53
+ if @d > 0
54
+ Float::INFINITY
55
+ else
56
+ -Float::INFINITY
57
+ end
58
+ end
59
+ end
60
+ end
61
+
7
62
  require "date/format" unless defined?(Date::Format::ZONES)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: home_run
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 5
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 7
10
- version: 1.0.7
9
+ - 9
10
+ version: 1.0.9
11
11
  platform: x86-mswin32-60
12
12
  authors:
13
13
  - Jeremy Evans
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-04-07 00:00:00 Z
18
+ date: 2013-03-19 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
21
  description: |