home_run 0.9.3-x86-mingw32 → 0.9.4-x86-mingw32
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 +4 -0
 - data/README.rdoc +0 -1
 - data/ext/date_ext/date_ext.c +192 -191
 - data/ext/date_ext/datetime.c +12 -11
 - data/lib/1.8/date_ext.so +0 -0
 - data/lib/1.9/date_ext.so +0 -0
 - data/spec/date/add_month_spec.rb +5 -0
 - data/spec/date/add_spec.rb +5 -0
 - data/spec/date/civil_spec.rb +5 -1
 - data/spec/date/commercial_spec.rb +5 -0
 - data/spec/date/conversions_spec.rb +10 -0
 - data/spec/date/downto_spec.rb +6 -0
 - data/spec/date/julian_spec.rb +10 -0
 - data/spec/date/minus_month_spec.rb +5 -0
 - data/spec/date/minus_spec.rb +5 -0
 - data/spec/date/next_prev_spec.rb +30 -1
 - data/spec/date/ordinal_spec.rb +5 -0
 - data/spec/date/parse_spec.rb +6 -0
 - data/spec/date/parsing_spec.rb +11 -0
 - data/spec/date/step_spec.rb +6 -0
 - data/spec/date/strptime_spec.rb +6 -0
 - data/spec/date/succ_spec.rb +5 -0
 - data/spec/date/today_spec.rb +5 -0
 - data/spec/date/upto_spec.rb +7 -0
 - data/spec/datetime/add_month_spec.rb +5 -0
 - data/spec/datetime/add_spec.rb +5 -0
 - data/spec/datetime/constructor_spec.rb +10 -0
 - data/spec/datetime/conversions_spec.rb +5 -0
 - data/spec/datetime/downto_spec.rb +6 -0
 - data/spec/datetime/minus_month_spec.rb +5 -2
 - data/spec/datetime/minus_spec.rb +5 -0
 - data/spec/datetime/next_prev_spec.rb +30 -0
 - data/spec/datetime/now_spec.rb +5 -0
 - data/spec/datetime/parse_spec.rb +6 -0
 - data/spec/datetime/parsing_spec.rb +11 -0
 - data/spec/datetime/step_spec.rb +6 -0
 - data/spec/datetime/strptime_spec.rb +6 -0
 - data/spec/datetime/succ_spec.rb +5 -0
 - data/spec/datetime/upto_spec.rb +6 -0
 - metadata +4 -4
 
    
        data/ext/date_ext/datetime.c
    CHANGED
    
    | 
         @@ -307,11 +307,11 @@ void rhrdt__now(rhrdt_t * dt) { 
     | 
|
| 
       307 
307 
     | 
    
         
             
             * the number per day by subtracting from or adding to the jd.
         
     | 
| 
       308 
308 
     | 
    
         
             
             * It should ensure that the stored nanos value is in the range
         
     | 
| 
       309 
309 
     | 
    
         
             
             * [0, RHR_NANOS_PER_DAY). */
         
     | 
| 
       310 
     | 
    
         
            -
            VALUE rhrdt__from_jd_nanos(long jd, long long nanos, short offset) {
         
     | 
| 
      
 310 
     | 
    
         
            +
            VALUE rhrdt__from_jd_nanos(VALUE klass, long jd, long long nanos, short offset) {
         
     | 
| 
       311 
311 
     | 
    
         
             
              long t;
         
     | 
| 
       312 
312 
     | 
    
         
             
              rhrdt_t *dt;
         
     | 
| 
       313 
313 
     | 
    
         
             
              VALUE new;
         
     | 
| 
       314 
     | 
    
         
            -
              new = Data_Make_Struct( 
     | 
| 
      
 314 
     | 
    
         
            +
              new = Data_Make_Struct(klass, rhrdt_t, NULL, -1, dt);
         
     | 
| 
       315 
315 
     | 
    
         | 
| 
       316 
316 
     | 
    
         
             
              if (nanos < 0) {
         
     | 
| 
       317 
317 
     | 
    
         
             
                t = (long)(nanos/RHR_NANOS_PER_DAY - 1);
         
     | 
| 
         @@ -363,7 +363,7 @@ VALUE rhrdt__add_days(VALUE self, double n) { 
     | 
|
| 
       363 
363 
     | 
    
         
             
              RHRDT_FILL_NANOS(dt)
         
     | 
| 
       364 
364 
     | 
    
         
             
              l = (long)floor(n);
         
     | 
| 
       365 
365 
     | 
    
         
             
              nanos = llround((n - l) * RHR_NANOS_PER_DAY);
         
     | 
| 
       366 
     | 
    
         
            -
              return rhrdt__from_jd_nanos(rhrd__safe_add_long(dt->jd, l), dt->nanos + nanos, dt->offset);
         
     | 
| 
      
 366 
     | 
    
         
            +
              return rhrdt__from_jd_nanos(rb_obj_class(self), rhrd__safe_add_long(dt->jd, l), dt->nanos + nanos, dt->offset);
         
     | 
| 
       367 
367 
     | 
    
         
             
            }
         
     | 
| 
       368 
368 
     | 
    
         | 
| 
       369 
369 
     | 
    
         
             
            /* Similar to rhrd__add_months, but for ruby DateTime
         
     | 
| 
         @@ -375,7 +375,7 @@ VALUE rhrdt__add_months(VALUE self, long n) { 
     | 
|
| 
       375 
375 
     | 
    
         
             
              long x;
         
     | 
| 
       376 
376 
     | 
    
         
             
              Data_Get_Struct(self, rhrdt_t, d);
         
     | 
| 
       377 
377 
     | 
    
         | 
| 
       378 
     | 
    
         
            -
              new = Data_Make_Struct( 
     | 
| 
      
 378 
     | 
    
         
            +
              new = Data_Make_Struct(rb_obj_class(self), rhrdt_t, NULL, -1, newd);
         
     | 
| 
       379 
379 
     | 
    
         
             
              RHRDT_FILL_CIVIL(d)
         
     | 
| 
       380 
380 
     | 
    
         
             
              memcpy(newd, d, sizeof(rhrdt_t));
         
     | 
| 
       381 
381 
     | 
    
         | 
| 
         @@ -509,7 +509,7 @@ VALUE rhrdt__new_offset(VALUE self, double offset) { 
     | 
|
| 
       509 
509 
     | 
    
         
             
              Data_Get_Struct(self, rhrdt_t, dt);
         
     | 
| 
       510 
510 
     | 
    
         
             
              RHRDT_FILL_JD(dt)
         
     | 
| 
       511 
511 
     | 
    
         
             
              RHRDT_FILL_NANOS(dt)
         
     | 
| 
       512 
     | 
    
         
            -
              return rhrdt__from_jd_nanos(dt->jd, dt->nanos - (dt->offset - offset_min)*RHR_NANOS_PER_MINUTE, (short)offset_min);
         
     | 
| 
      
 512 
     | 
    
         
            +
              return rhrdt__from_jd_nanos(rb_obj_class(self), dt->jd, dt->nanos - (dt->offset - offset_min)*RHR_NANOS_PER_MINUTE, (short)offset_min);
         
     | 
| 
       513 
513 
     | 
    
         
             
            }
         
     | 
| 
       514 
514 
     | 
    
         | 
| 
       515 
515 
     | 
    
         
             
            /* Class methods */
         
     | 
| 
         @@ -1453,7 +1453,7 @@ static VALUE rhrdt_step(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       1453 
1453 
     | 
    
         
             
              double step, limit;
         
     | 
| 
       1454 
1454 
     | 
    
         
             
              long long step_nanos, limit_nanos, current_nanos;
         
     | 
| 
       1455 
1455 
     | 
    
         
             
              long step_jd, limit_jd, current_jd;
         
     | 
| 
       1456 
     | 
    
         
            -
              VALUE rlimit, new, rstep, new_off;
         
     | 
| 
      
 1456 
     | 
    
         
            +
              VALUE rlimit, new, rstep, new_off, klass;
         
     | 
| 
       1457 
1457 
     | 
    
         
             
              new_off = rhrdt__new_offset(self, 0.0);
         
     | 
| 
       1458 
1458 
     | 
    
         
             
              Data_Get_Struct(self, rhrdt_t, d);
         
     | 
| 
       1459 
1459 
     | 
    
         
             
              Data_Get_Struct(new_off, rhrdt_t, d0);
         
     | 
| 
         @@ -1475,6 +1475,7 @@ static VALUE rhrdt_step(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       1475 
1475 
     | 
    
         
             
                  break;
         
     | 
| 
       1476 
1476 
     | 
    
         
             
              }
         
     | 
| 
       1477 
1477 
     | 
    
         
             
              rlimit = argv[0];
         
     | 
| 
      
 1478 
     | 
    
         
            +
              klass = rb_obj_class(self);
         
     | 
| 
       1478 
1479 
     | 
    
         | 
| 
       1479 
1480 
     | 
    
         
             
            #ifdef RUBY19
         
     | 
| 
       1480 
1481 
     | 
    
         
             
              if (!rb_block_given_p()) {
         
     | 
| 
         @@ -1510,12 +1511,12 @@ static VALUE rhrdt_step(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       1510 
1511 
     | 
    
         | 
| 
       1511 
1512 
     | 
    
         
             
              current_jd = d0->jd;
         
     | 
| 
       1512 
1513 
     | 
    
         
             
              current_nanos = d0->nanos;
         
     | 
| 
       1513 
     | 
    
         
            -
              new = rhrdt__from_jd_nanos(current_jd, current_nanos, d->offset);
         
     | 
| 
      
 1514 
     | 
    
         
            +
              new = rhrdt__from_jd_nanos(klass, current_jd, current_nanos, d->offset);
         
     | 
| 
       1514 
1515 
     | 
    
         
             
              if (limit_jd > current_jd || (limit_jd == current_jd && limit_nanos > current_nanos)) {
         
     | 
| 
       1515 
1516 
     | 
    
         
             
                if (step_jd > 0 || (step_jd == 0 && step_nanos > 0)) {
         
     | 
| 
       1516 
1517 
     | 
    
         
             
                  while (limit_jd > current_jd || (limit_jd == current_jd && limit_nanos >= current_nanos)) {
         
     | 
| 
       1517 
1518 
     | 
    
         
             
                    rb_yield(new);
         
     | 
| 
       1518 
     | 
    
         
            -
                    new = rhrdt__from_jd_nanos(current_jd + step_jd, current_nanos + step_nanos, d->offset);
         
     | 
| 
      
 1519 
     | 
    
         
            +
                    new = rhrdt__from_jd_nanos(klass, current_jd + step_jd, current_nanos + step_nanos, d->offset);
         
     | 
| 
       1519 
1520 
     | 
    
         
             
                    Data_Get_Struct(new, rhrdt_t, ndt);
         
     | 
| 
       1520 
1521 
     | 
    
         
             
                    current_jd = ndt->jd;
         
     | 
| 
       1521 
1522 
     | 
    
         
             
                    current_nanos = ndt->nanos;
         
     | 
| 
         @@ -1525,7 +1526,7 @@ static VALUE rhrdt_step(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       1525 
1526 
     | 
    
         
             
                if (step_jd < 0 || (step_jd == 0 && step_nanos < 0)) {
         
     | 
| 
       1526 
1527 
     | 
    
         
             
                  while (limit_jd < current_jd || (limit_jd == current_jd && limit_nanos <= current_nanos)) {
         
     | 
| 
       1527 
1528 
     | 
    
         
             
                    rb_yield(new);
         
     | 
| 
       1528 
     | 
    
         
            -
                    new = rhrdt__from_jd_nanos(current_jd + step_jd, current_nanos + step_nanos, d->offset);
         
     | 
| 
      
 1529 
     | 
    
         
            +
                    new = rhrdt__from_jd_nanos(klass, current_jd + step_jd, current_nanos + step_nanos, d->offset);
         
     | 
| 
       1529 
1530 
     | 
    
         
             
                    Data_Get_Struct(new, rhrdt_t, ndt);
         
     | 
| 
       1530 
1531 
     | 
    
         
             
                    current_jd = ndt->jd;
         
     | 
| 
       1531 
1532 
     | 
    
         
             
                    current_nanos = ndt->nanos;
         
     | 
| 
         @@ -1924,7 +1925,7 @@ VALUE rhrdt__add_years(VALUE self, long n) { 
     | 
|
| 
       1924 
1925 
     | 
    
         
             
              VALUE new;
         
     | 
| 
       1925 
1926 
     | 
    
         
             
              Data_Get_Struct(self, rhrdt_t, d);
         
     | 
| 
       1926 
1927 
     | 
    
         | 
| 
       1927 
     | 
    
         
            -
              new = Data_Make_Struct( 
     | 
| 
      
 1928 
     | 
    
         
            +
              new = Data_Make_Struct(rb_obj_class(self), rhrdt_t, NULL, -1, newd);
         
     | 
| 
       1928 
1929 
     | 
    
         
             
              RHRDT_FILL_CIVIL(d)
         
     | 
| 
       1929 
1930 
     | 
    
         
             
              memcpy(newd, d, sizeof(rhrdt_t));
         
     | 
| 
       1930 
1931 
     | 
    
         | 
| 
         @@ -2605,7 +2606,7 @@ static VALUE rhrdt_to_time(VALUE self) { 
     | 
|
| 
       2605 
2606 
     | 
    
         
             
              Data_Get_Struct(self, rhrdt_t, dt);
         
     | 
| 
       2606 
2607 
     | 
    
         
             
              RHRDT_FILL_JD(dt)
         
     | 
| 
       2607 
2608 
     | 
    
         
             
              RHRDT_FILL_NANOS(dt)
         
     | 
| 
       2608 
     | 
    
         
            -
              self = rhrdt__from_jd_nanos(dt->jd, dt->nanos - dt->offset * RHR_NANOS_PER_MINUTE, 0);
         
     | 
| 
      
 2609 
     | 
    
         
            +
              self = rhrdt__from_jd_nanos(rb_obj_class(self), dt->jd, dt->nanos - dt->offset * RHR_NANOS_PER_MINUTE, 0);
         
     | 
| 
       2609 
2610 
     | 
    
         
             
              Data_Get_Struct(self, rhrdt_t, dt);
         
     | 
| 
       2610 
2611 
     | 
    
         
             
              RHRDT_FILL_CIVIL(dt)
         
     | 
| 
       2611 
2612 
     | 
    
         
             
              RHRDT_FILL_HMS(dt)
         
     | 
    
        data/lib/1.8/date_ext.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/1.9/date_ext.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/spec/date/add_month_spec.rb
    CHANGED
    
    | 
         @@ -17,6 +17,11 @@ describe "Date#>>" do 
     | 
|
| 
       17 
17 
     | 
    
         
             
                d.should == Date.civil(2008, 4, 30)
         
     | 
| 
       18 
18 
     | 
    
         
             
              end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
      
 20 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 22 
     | 
    
         
            +
                c.jd.>>(-10).should be_kind_of(c)
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       20 
25 
     | 
    
         
             
              it "should raise an error on non numeric parameters" do
         
     | 
| 
       21 
26 
     | 
    
         
             
                lambda { Date.civil(2007,2,27) >> "hello" }.should raise_error(TypeError)
         
     | 
| 
       22 
27 
     | 
    
         
             
                lambda { Date.civil(2007,2,27) >> Date.new }.should raise_error(TypeError)
         
     | 
    
        data/spec/date/add_spec.rb
    CHANGED
    
    | 
         @@ -14,6 +14,11 @@ describe "Date#+" do 
     | 
|
| 
       14 
14 
     | 
    
         
             
                d.should == Date.civil(2007, 2, 17)
         
     | 
| 
       15 
15 
     | 
    
         
             
              end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 19 
     | 
    
         
            +
                c.jd.+(10).should be_kind_of(c)
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       17 
22 
     | 
    
         
             
              it "should raise an error on non numeric parameters" do
         
     | 
| 
       18 
23 
     | 
    
         
             
                lambda { Date.civil(2007,2,27) + "hello" }.should raise_error(TypeError)
         
     | 
| 
       19 
24 
     | 
    
         
             
                lambda { Date.civil(2007,2,27) + Date.new }.should raise_error(TypeError)
         
     | 
    
        data/spec/date/civil_spec.rb
    CHANGED
    
    | 
         @@ -67,6 +67,11 @@ describe "Date.civil" do 
     | 
|
| 
       67 
67 
     | 
    
         
             
                proc{Date.civil(2008, 2, 30)}.should raise_error(ArgumentError)
         
     | 
| 
       68 
68 
     | 
    
         
             
                proc{Date.civil(2009, 2, 29)}.should raise_error(ArgumentError)
         
     | 
| 
       69 
69 
     | 
    
         
             
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 72 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 73 
     | 
    
         
            +
                c.civil.should be_kind_of(c)
         
     | 
| 
      
 74 
     | 
    
         
            +
              end
         
     | 
| 
       70 
75 
     | 
    
         
             
            end
         
     | 
| 
       71 
76 
     | 
    
         | 
| 
       72 
77 
     | 
    
         
             
            describe "Date.new" do
         
     | 
| 
         @@ -143,5 +148,4 @@ describe "Date.valid_civil?" do 
     | 
|
| 
       143 
148 
     | 
    
         
             
                  Date.valid_civil?(2008, -11, -10).should == true
         
     | 
| 
       144 
149 
     | 
    
         
             
                end
         
     | 
| 
       145 
150 
     | 
    
         
             
              end
         
     | 
| 
       146 
     | 
    
         
            -
             
     | 
| 
       147 
151 
     | 
    
         
             
            end
         
     | 
| 
         @@ -91,6 +91,11 @@ describe "Date.commercial" do 
     | 
|
| 
       91 
91 
     | 
    
         
             
                proc{Date.commercial(2008, 54, 6)}.should raise_error(ArgumentError)
         
     | 
| 
       92 
92 
     | 
    
         
             
                proc{Date.commercial(2009, 1, 8)}.should raise_error(ArgumentError)
         
     | 
| 
       93 
93 
     | 
    
         
             
              end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 96 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 97 
     | 
    
         
            +
                c.commercial.should be_kind_of(c)
         
     | 
| 
      
 98 
     | 
    
         
            +
              end
         
     | 
| 
       94 
99 
     | 
    
         
             
            end
         
     | 
| 
       95 
100 
     | 
    
         | 
| 
       96 
101 
     | 
    
         
             
            ruby_version_is "" ... "1.9" do
         
     | 
| 
         @@ -9,6 +9,11 @@ describe "Date#new_start" do 
     | 
|
| 
       9 
9 
     | 
    
         
             
                Date.civil(1752,  9, 13).new_start(Date::ENGLAND).should == Date.civil(1752,  9, 13, Date::ENGLAND)
         
     | 
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
      
 12 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 14 
     | 
    
         
            +
                c.jd.new_start.should be_kind_of(c)
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       12 
17 
     | 
    
         
             
              ruby_version_is "" ... "1.9" do
         
     | 
| 
       13 
18 
     | 
    
         
             
                it "#newsg should be the same as new_start" do
         
     | 
| 
       14 
19 
     | 
    
         
             
                  Date.civil(1582, 10, 14, Date::ENGLAND).newsg.should == Date.civil(1582, 10, 14, Date::ENGLAND).new_start
         
     | 
| 
         @@ -45,6 +50,11 @@ describe "Date#gregorian" do 
     | 
|
| 
       45 
50 
     | 
    
         
             
                Date.civil(1582, 10, 14).gregorian.should == Date.civil(1582, 10, 14, Date::GREGORIAN)
         
     | 
| 
       46 
51 
     | 
    
         
             
                Date.civil(1752,  9, 14).gregorian.should == Date.civil(1752,  9, 14, Date::GREGORIAN)
         
     | 
| 
       47 
52 
     | 
    
         
             
              end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 55 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 56 
     | 
    
         
            +
                c.jd.gregorian.should be_kind_of(c)
         
     | 
| 
      
 57 
     | 
    
         
            +
              end
         
     | 
| 
       48 
58 
     | 
    
         
             
            end
         
     | 
| 
       49 
59 
     | 
    
         | 
| 
       50 
60 
     | 
    
         
             
            ruby_version_is "" ... "1.9" do
         
     | 
    
        data/spec/date/downto_spec.rb
    CHANGED
    
    
    
        data/spec/date/julian_spec.rb
    CHANGED
    
    | 
         @@ -24,6 +24,11 @@ describe "Date.jd" do 
     | 
|
| 
       24 
24 
     | 
    
         
             
                proc{Date.jd(Date::JULIAN)}.should raise_error
         
     | 
| 
       25 
25 
     | 
    
         
             
              end
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
      
 27 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 29 
     | 
    
         
            +
                c.jd.should be_kind_of(c)
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
       27 
32 
     | 
    
         
             
              ruby_version_is "" ... "1.9" do
         
     | 
| 
       28 
33 
     | 
    
         
             
                it ".new1 should be the same as jd" do
         
     | 
| 
       29 
34 
     | 
    
         
             
                  Date.new1(2454156).should == Date.jd(2454156)
         
     | 
| 
         @@ -43,6 +48,11 @@ describe "Date.new!" do 
     | 
|
| 
       43 
48 
     | 
    
         
             
                Date.new!(2008, 1, 1).should == Date.jd(2008)
         
     | 
| 
       44 
49 
     | 
    
         
             
              end
         
     | 
| 
       45 
50 
     | 
    
         | 
| 
      
 51 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 52 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 53 
     | 
    
         
            +
                c.new!.should be_kind_of(c)
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
       46 
56 
     | 
    
         
             
              it "should not accept more than 3 arguments" do
         
     | 
| 
       47 
57 
     | 
    
         
             
                proc{Date.new!(2008, 1, 1, 1)}.should raise_error(ArgumentError)
         
     | 
| 
       48 
58 
     | 
    
         
             
              end
         
     | 
| 
         @@ -16,6 +16,11 @@ describe "Date#<<" do 
     | 
|
| 
       16 
16 
     | 
    
         
             
                d.should == Date.civil(2008, 2, 29)
         
     | 
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 21 
     | 
    
         
            +
                c.jd.<<(-10).should be_kind_of(c)
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       19 
24 
     | 
    
         
             
              it "should raise an error on non numeric parameters" do
         
     | 
| 
       20 
25 
     | 
    
         
             
                lambda { Date.civil(2007,2,27) << "hello" }.should raise_error(TypeError)
         
     | 
| 
       21 
26 
     | 
    
         
             
                lambda { Date.civil(2007,2,27) << Date.new }.should raise_error(TypeError)
         
     | 
    
        data/spec/date/minus_spec.rb
    CHANGED
    
    | 
         @@ -14,6 +14,11 @@ describe "Date#-" do 
     | 
|
| 
       14 
14 
     | 
    
         
             
                d.should == Date.civil(2007, 5 ,2) 
         
     | 
| 
       15 
15 
     | 
    
         
             
              end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 19 
     | 
    
         
            +
                c.jd.-(10).should be_kind_of(c)
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       17 
22 
     | 
    
         
             
              it "should be able to compute the different between two dates" do
         
     | 
| 
       18 
23 
     | 
    
         
             
                (Date.civil(2007,2,27) - Date.civil(2007,2,27)).should == 0
         
     | 
| 
       19 
24 
     | 
    
         
             
                (Date.civil(2007,2,27) - Date.civil(2007,2,26)).should == 1
         
     | 
    
        data/spec/date/next_prev_spec.rb
    CHANGED
    
    | 
         @@ -13,6 +13,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       13 
13 
     | 
    
         
             
                it "should handle a negative argument by subtracting days" do
         
     | 
| 
       14 
14 
     | 
    
         
             
                  (Date.civil(2007,2,27).next_day(-2)).should == Date.civil(2007, 2, 25)
         
     | 
| 
       15 
15 
     | 
    
         
             
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  c = Class.new(Date)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  c.jd.next_day.should be_kind_of(c)
         
     | 
| 
      
 20 
     | 
    
         
            +
                end
         
     | 
| 
       16 
21 
     | 
    
         
             
              end 
         
     | 
| 
       17 
22 
     | 
    
         | 
| 
       18 
23 
     | 
    
         
             
              describe "Date#prev_day" do
         
     | 
| 
         @@ -27,6 +32,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       27 
32 
     | 
    
         
             
                it "should handle a negative argument by adding days" do
         
     | 
| 
       28 
33 
     | 
    
         
             
                  (Date.civil(2007,2,27).prev_day(-2)).should == Date.civil(2007, 3, 1)
         
     | 
| 
       29 
34 
     | 
    
         
             
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 37 
     | 
    
         
            +
                  c = Class.new(Date)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  c.jd.prev_day.should be_kind_of(c)
         
     | 
| 
      
 39 
     | 
    
         
            +
                end
         
     | 
| 
       30 
40 
     | 
    
         
             
              end 
         
     | 
| 
       31 
41 
     | 
    
         | 
| 
       32 
42 
     | 
    
         
             
              describe "Date#next_month" do
         
     | 
| 
         @@ -47,6 +57,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       47 
57 
     | 
    
         
             
                  (Date.civil(2008,1,31).next_month).should == Date.civil(2008, 2, 29)
         
     | 
| 
       48 
58 
     | 
    
         
             
                  (Date.civil(2007,1,31).next_month(3)).should == Date.civil(2007, 4, 30)
         
     | 
| 
       49 
59 
     | 
    
         
             
                end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 62 
     | 
    
         
            +
                  c = Class.new(Date)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  c.jd.next_month.should be_kind_of(c)
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
       50 
65 
     | 
    
         
             
              end 
         
     | 
| 
       51 
66 
     | 
    
         | 
| 
       52 
67 
     | 
    
         
             
              describe "Date#prev_month" do
         
     | 
| 
         @@ -67,6 +82,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       67 
82 
     | 
    
         
             
                  (Date.civil(2008,3,31).prev_month).should == Date.civil(2008, 2, 29)
         
     | 
| 
       68 
83 
     | 
    
         
             
                  (Date.civil(2007,3,31).prev_month(4)).should == Date.civil(2006, 11, 30)
         
     | 
| 
       69 
84 
     | 
    
         
             
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 87 
     | 
    
         
            +
                  c = Class.new(Date)
         
     | 
| 
      
 88 
     | 
    
         
            +
                  c.jd.prev_month.should be_kind_of(c)
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
       70 
90 
     | 
    
         
             
              end 
         
     | 
| 
       71 
91 
     | 
    
         | 
| 
       72 
92 
     | 
    
         
             
              describe "Date#next_year" do
         
     | 
| 
         @@ -85,6 +105,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       85 
105 
     | 
    
         
             
                it "should handle adding a year where the new date is not a valid date" do
         
     | 
| 
       86 
106 
     | 
    
         
             
                  (Date.civil(2008,2,29).next_year).should == Date.civil(2009, 2, 28)
         
     | 
| 
       87 
107 
     | 
    
         
             
                end
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 110 
     | 
    
         
            +
                  c = Class.new(Date)
         
     | 
| 
      
 111 
     | 
    
         
            +
                  c.jd.next_year.should be_kind_of(c)
         
     | 
| 
      
 112 
     | 
    
         
            +
                end
         
     | 
| 
       88 
113 
     | 
    
         
             
              end 
         
     | 
| 
       89 
114 
     | 
    
         | 
| 
       90 
115 
     | 
    
         
             
              describe "Date#prev_year" do
         
     | 
| 
         @@ -103,6 +128,10 @@ ruby_version_is "1.9" do 
     | 
|
| 
       103 
128 
     | 
    
         
             
                it "should handle adding a year where the new date is not a valid date" do
         
     | 
| 
       104 
129 
     | 
    
         
             
                  (Date.civil(2008,2,29).prev_year).should == Date.civil(2007, 2, 28)
         
     | 
| 
       105 
130 
     | 
    
         
             
                end
         
     | 
| 
       106 
     | 
    
         
            -
              end 
         
     | 
| 
       107 
131 
     | 
    
         | 
| 
      
 132 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 133 
     | 
    
         
            +
                  c = Class.new(Date)
         
     | 
| 
      
 134 
     | 
    
         
            +
                  c.jd.prev_year.should be_kind_of(c)
         
     | 
| 
      
 135 
     | 
    
         
            +
                end
         
     | 
| 
      
 136 
     | 
    
         
            +
              end 
         
     | 
| 
       108 
137 
     | 
    
         
             
            end
         
     | 
    
        data/spec/date/ordinal_spec.rb
    CHANGED
    
    | 
         @@ -25,6 +25,11 @@ describe "Date.ordinal" do 
     | 
|
| 
       25 
25 
     | 
    
         
             
                lambda { Date.ordinal(2008, 367) }.should raise_error(ArgumentError)
         
     | 
| 
       26 
26 
     | 
    
         
             
              end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
      
 28 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 29 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 30 
     | 
    
         
            +
                c.ordinal.should be_kind_of(c)
         
     | 
| 
      
 31 
     | 
    
         
            +
              end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       28 
33 
     | 
    
         
             
              ruby_version_is "" ... "1.9" do
         
     | 
| 
       29 
34 
     | 
    
         
             
                it ".new2 should be the same as ordinal" do
         
     | 
| 
       30 
35 
     | 
    
         
             
                  Date.new2(2008, 10).should == Date.ordinal(2008, 10)
         
     | 
    
        data/spec/date/parse_spec.rb
    CHANGED
    
    | 
         @@ -57,6 +57,12 @@ describe "Date.parse" do 
     | 
|
| 
       57 
57 
     | 
    
         
             
                Date.parse('2008-10-11', true, 1).should == Date.civil(2008, 10, 11)
         
     | 
| 
       58 
58 
     | 
    
         
             
              end
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
      
 60 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 61 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 62 
     | 
    
         
            +
                c.parse.should be_kind_of(c)
         
     | 
| 
      
 63 
     | 
    
         
            +
                c.parse('20081011').should be_kind_of(c)
         
     | 
| 
      
 64 
     | 
    
         
            +
              end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
       60 
66 
     | 
    
         
             
              it "raises errors for invalid dates" do
         
     | 
| 
       61 
67 
     | 
    
         
             
                lambda { Date.parse("") }.should raise_error(ArgumentError)
         
     | 
| 
       62 
68 
     | 
    
         
             
                lambda { Date.parse("2009-02-29") }.should raise_error(ArgumentError)
         
     | 
    
        data/spec/date/parsing_spec.rb
    CHANGED
    
    | 
         @@ -84,5 +84,16 @@ ruby_version_is "1.9" do 
     | 
|
| 
       84 
84 
     | 
    
         
             
                it ".xmlschema should parse an ISO8601 format" do
         
     | 
| 
       85 
85 
     | 
    
         
             
                  Date.xmlschema("2009-01-02").should == Date.new(2009, 1, 2)
         
     | 
| 
       86 
86 
     | 
    
         
             
                end
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 89 
     | 
    
         
            +
                  c = Class.new(Date)
         
     | 
| 
      
 90 
     | 
    
         
            +
                  c.httpdate("Fri, 02 Jan 2009 00:00:00 GMT").should be_kind_of(c)
         
     | 
| 
      
 91 
     | 
    
         
            +
                  c.iso8601("2009-01-02").should be_kind_of(c)
         
     | 
| 
      
 92 
     | 
    
         
            +
                  c.jisx0301("H21.01.02").should be_kind_of(c)
         
     | 
| 
      
 93 
     | 
    
         
            +
                  c.rfc2822("Fri, 2 Jan 2009 00:00:00 +0000").should be_kind_of(c)
         
     | 
| 
      
 94 
     | 
    
         
            +
                  c.rfc822("Fri, 2 Jan 2009 00:00:00 +0000").should be_kind_of(c)
         
     | 
| 
      
 95 
     | 
    
         
            +
                  c.rfc3339("2009-01-02T00:00:00+00:00").should be_kind_of(c)
         
     | 
| 
      
 96 
     | 
    
         
            +
                  c.xmlschema("2009-01-02").should be_kind_of(c)
         
     | 
| 
      
 97 
     | 
    
         
            +
                end
         
     | 
| 
       87 
98 
     | 
    
         
             
              end
         
     | 
| 
       88 
99 
     | 
    
         
             
            end
         
     | 
    
        data/spec/date/step_spec.rb
    CHANGED
    
    
    
        data/spec/date/strptime_spec.rb
    CHANGED
    
    | 
         @@ -22,6 +22,12 @@ describe "Date#strptime" do 
     | 
|
| 
       22 
22 
     | 
    
         
             
                Date.strptime('2008-10-11', '%Y-%m-%d', 1).should == Date.civil(2008, 10, 11)
         
     | 
| 
       23 
23 
     | 
    
         
             
              end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
      
 25 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 26 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 27 
     | 
    
         
            +
                c.strptime.should be_kind_of(c)
         
     | 
| 
      
 28 
     | 
    
         
            +
                c.strptime('20081011', '%Y%m%d').should be_kind_of(c)
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
       25 
31 
     | 
    
         
             
              it "raises errors for invalid dates" do
         
     | 
| 
       26 
32 
     | 
    
         
             
                lambda { Date.strptime("") }.should raise_error(ArgumentError)
         
     | 
| 
       27 
33 
     | 
    
         
             
                lambda { Date.strptime("", "") }.should raise_error(ArgumentError)
         
     | 
    
        data/spec/date/succ_spec.rb
    CHANGED
    
    | 
         @@ -14,6 +14,11 @@ describe "Date#succ" do 
     | 
|
| 
       14 
14 
     | 
    
         
             
                ds.succ.should == Date.ordinal(2009, 1)
         
     | 
| 
       15 
15 
     | 
    
         
             
              end
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
      
 17 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                c = Class.new(Date)
         
     | 
| 
      
 19 
     | 
    
         
            +
                c.jd.succ.should be_kind_of(c)
         
     | 
| 
      
 20 
     | 
    
         
            +
              end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       17 
22 
     | 
    
         
             
              it "should be aliased as next" do
         
     | 
| 
       18 
23 
     | 
    
         
             
                Date.civil(2008, 10, 11).next.should == Date.civil(2008, 10, 12)
         
     | 
| 
       19 
24 
     | 
    
         
             
              end
         
     | 
    
        data/spec/date/today_spec.rb
    CHANGED
    
    
    
        data/spec/date/upto_spec.rb
    CHANGED
    
    
| 
         @@ -17,6 +17,11 @@ describe "DateTime#>>" do 
     | 
|
| 
       17 
17 
     | 
    
         
             
                d.should == DateTime.civil(2008, 4, 30)
         
     | 
| 
       18 
18 
     | 
    
         
             
              end
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
      
 20 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 21 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 22 
     | 
    
         
            +
                c.jd.>>(10).should be_kind_of(c)
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
       20 
25 
     | 
    
         
             
              it "should raise an error on non numeric parameters" do
         
     | 
| 
       21 
26 
     | 
    
         
             
                lambda { DateTime.civil(2007,2,27) >> "hello" }.should raise_error(TypeError)
         
     | 
| 
       22 
27 
     | 
    
         
             
                lambda { DateTime.civil(2007,2,27) >> DateTime.new }.should raise_error(TypeError)
         
     | 
    
        data/spec/datetime/add_spec.rb
    CHANGED
    
    | 
         @@ -26,6 +26,11 @@ describe "DateTime#+" do 
     | 
|
| 
       26 
26 
     | 
    
         
             
                d.should == DateTime.civil(2007, 2, 16, 12)
         
     | 
| 
       27 
27 
     | 
    
         
             
              end
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
      
 29 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 30 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 31 
     | 
    
         
            +
                c.jd.+(10).should be_kind_of(c)
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
       29 
34 
     | 
    
         
             
              it "should raise an error on non numeric parameters" do
         
     | 
| 
       30 
35 
     | 
    
         
             
                lambda { DateTime.civil(2007,2,27) + :hello }.should raise_error
         
     | 
| 
       31 
36 
     | 
    
         
             
                lambda { DateTime.civil(2007,2,27) + "hello" }.should raise_error
         
     | 
| 
         @@ -139,4 +139,14 @@ describe "DateTime constructors" do 
     | 
|
| 
       139 
139 
     | 
    
         
             
                DateTime.ordinal(2008, 1, 0, 0, 0, 0).should == DateTime.ordinal(2008, 1, 0, 0, 0, 0)
         
     | 
| 
       140 
140 
     | 
    
         
             
                DateTime.ordinal(2008, 1, 1, 1, 1, 0.5, 1).should == DateTime.ordinal(2008, 1, 1, 1, 1, 0.5)
         
     | 
| 
       141 
141 
     | 
    
         
             
              end
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 144 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 145 
     | 
    
         
            +
                c.jd.should be_kind_of(c)
         
     | 
| 
      
 146 
     | 
    
         
            +
                c.civil.should be_kind_of(c)
         
     | 
| 
      
 147 
     | 
    
         
            +
                c.commercial.should be_kind_of(c)
         
     | 
| 
      
 148 
     | 
    
         
            +
                c.ordinal.should be_kind_of(c)
         
     | 
| 
      
 149 
     | 
    
         
            +
                c.new!.should be_kind_of(c)
         
     | 
| 
      
 150 
     | 
    
         
            +
                c.new.should be_kind_of(c)
         
     | 
| 
      
 151 
     | 
    
         
            +
              end
         
     | 
| 
       142 
152 
     | 
    
         
             
            end
         
     | 
| 
         @@ -9,6 +9,11 @@ describe "DateTime conversions" do 
     | 
|
| 
       9 
9 
     | 
    
         
             
                DateTime.new(2008, 1, 1).new_offset(0.5).should == DateTime.new(2008, 1, 1)
         
     | 
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
      
 12 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 13 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 14 
     | 
    
         
            +
                c.jd.new_offset.should be_kind_of(c)
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       12 
17 
     | 
    
         
             
              ruby_version_is "" ... "1.9" do
         
     | 
| 
       13 
18 
     | 
    
         
             
                it "#newof should be a separate datetime with a modified offset" do
         
     | 
| 
       14 
19 
     | 
    
         
             
                  DateTime.new(2008, 1, 1).newof(0.5).to_s.should == DateTime.new(2008, 1, 1, 12, 0, 0, 0.5).to_s
         
     | 
| 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require File.expand_path('../../spec_helper', __FILE__)
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe "DateTime#<<" do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              it "should substract a number of months from a date" do
         
     | 
| 
       6 
5 
     | 
    
         
             
                (DateTime.civil(2007, 12, 27) << 10).should == DateTime.civil(2007,2,27)
         
     | 
| 
       7 
6 
     | 
    
         
             
                (DateTime.commercial(2007, 45, 5) << 10).should == DateTime.commercial(2007,2,2)
         
     | 
| 
         @@ -16,10 +15,14 @@ describe "DateTime#<<" do 
     | 
|
| 
       16 
15 
     | 
    
         
             
                d.should == DateTime.civil(2008, 2, 29)
         
     | 
| 
       17 
16 
     | 
    
         
             
              end
         
     | 
| 
       18 
17 
     | 
    
         | 
| 
      
 18 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 20 
     | 
    
         
            +
                c.jd.<<(10).should be_kind_of(c)
         
     | 
| 
      
 21 
     | 
    
         
            +
              end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       19 
23 
     | 
    
         
             
              it "should raise an error on non numeric parameters" do
         
     | 
| 
       20 
24 
     | 
    
         
             
                lambda { DateTime.civil(2007,2,27) << "hello" }.should raise_error(TypeError)
         
     | 
| 
       21 
25 
     | 
    
         
             
                lambda { DateTime.civil(2007,2,27) << DateTime.new }.should raise_error(TypeError)
         
     | 
| 
       22 
26 
     | 
    
         
             
                lambda { DateTime.civil(2007,2,27) << Object.new }.should raise_error(TypeError)
         
     | 
| 
       23 
27 
     | 
    
         
             
              end
         
     | 
| 
       24 
     | 
    
         
            -
              
         
     | 
| 
       25 
28 
     | 
    
         
             
            end
         
     | 
    
        data/spec/datetime/minus_spec.rb
    CHANGED
    
    | 
         @@ -16,6 +16,11 @@ describe "DateTime#-" do 
     | 
|
| 
       16 
16 
     | 
    
         
             
                (DateTime.ordinal(2008, 325, 6) - 315.25).should == DateTime.ordinal(2008, 10)
         
     | 
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
      
 19 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 20 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 21 
     | 
    
         
            +
                c.jd.-(10).should be_kind_of(c)
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       19 
24 
     | 
    
         
             
              it "should substract a negative number of days from a DateTime" do
         
     | 
| 
       20 
25 
     | 
    
         
             
                d = DateTime.civil(2007, 4, 19).-(-13)
         
     | 
| 
       21 
26 
     | 
    
         
             
                d.should == DateTime.civil(2007, 5 ,2) 
         
     | 
| 
         @@ -18,6 +18,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       18 
18 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).next_day).day_fraction.should == 0.5
         
     | 
| 
       19 
19 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).next_day).offset.should == 0.5
         
     | 
| 
       20 
20 
     | 
    
         
             
                end
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 23 
     | 
    
         
            +
                  c = Class.new(DateTime)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  c.jd.next_day.should be_kind_of(c)
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
       21 
26 
     | 
    
         
             
              end 
         
     | 
| 
       22 
27 
     | 
    
         | 
| 
       23 
28 
     | 
    
         
             
              describe "DateTime#prev_day" do
         
     | 
| 
         @@ -37,6 +42,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       37 
42 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).prev_day).day_fraction.should == 0.5
         
     | 
| 
       38 
43 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).prev_day).offset.should == 0.5
         
     | 
| 
       39 
44 
     | 
    
         
             
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 47 
     | 
    
         
            +
                  c = Class.new(DateTime)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  c.jd.prev_day.should be_kind_of(c)
         
     | 
| 
      
 49 
     | 
    
         
            +
                end
         
     | 
| 
       40 
50 
     | 
    
         
             
              end 
         
     | 
| 
       41 
51 
     | 
    
         | 
| 
       42 
52 
     | 
    
         
             
              describe "DateTime#next_month" do
         
     | 
| 
         @@ -62,6 +72,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       62 
72 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).next_month).day_fraction.should == 0.5
         
     | 
| 
       63 
73 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).next_month).offset.should == 0.5
         
     | 
| 
       64 
74 
     | 
    
         
             
                end
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 77 
     | 
    
         
            +
                  c = Class.new(DateTime)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  c.jd.next_month.should be_kind_of(c)
         
     | 
| 
      
 79 
     | 
    
         
            +
                end
         
     | 
| 
       65 
80 
     | 
    
         
             
              end 
         
     | 
| 
       66 
81 
     | 
    
         | 
| 
       67 
82 
     | 
    
         
             
              describe "DateTime#prev_month" do
         
     | 
| 
         @@ -87,6 +102,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       87 
102 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).prev_month).day_fraction.should == 0.5
         
     | 
| 
       88 
103 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).prev_month).offset.should == 0.5
         
     | 
| 
       89 
104 
     | 
    
         
             
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 107 
     | 
    
         
            +
                  c = Class.new(DateTime)
         
     | 
| 
      
 108 
     | 
    
         
            +
                  c.jd.prev_month.should be_kind_of(c)
         
     | 
| 
      
 109 
     | 
    
         
            +
                end
         
     | 
| 
       90 
110 
     | 
    
         
             
              end 
         
     | 
| 
       91 
111 
     | 
    
         | 
| 
       92 
112 
     | 
    
         
             
              describe "DateTime#next_year" do
         
     | 
| 
         @@ -110,6 +130,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       110 
130 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).next_year).day_fraction.should == 0.5
         
     | 
| 
       111 
131 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).next_year).offset.should == 0.5
         
     | 
| 
       112 
132 
     | 
    
         
             
                end
         
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
      
 134 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 135 
     | 
    
         
            +
                  c = Class.new(DateTime)
         
     | 
| 
      
 136 
     | 
    
         
            +
                  c.jd.next_year.should be_kind_of(c)
         
     | 
| 
      
 137 
     | 
    
         
            +
                end
         
     | 
| 
       113 
138 
     | 
    
         
             
              end 
         
     | 
| 
       114 
139 
     | 
    
         | 
| 
       115 
140 
     | 
    
         
             
              describe "DateTime#prev_year" do
         
     | 
| 
         @@ -133,6 +158,11 @@ ruby_version_is "1.9" do 
     | 
|
| 
       133 
158 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).prev_year).day_fraction.should == 0.5
         
     | 
| 
       134 
159 
     | 
    
         
             
                  (DateTime.civil(2007,2,27, 12, 0, 0, 0.5).prev_year).offset.should == 0.5
         
     | 
| 
       135 
160 
     | 
    
         
             
                end
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 163 
     | 
    
         
            +
                  c = Class.new(DateTime)
         
     | 
| 
      
 164 
     | 
    
         
            +
                  c.jd.prev_year.should be_kind_of(c)
         
     | 
| 
      
 165 
     | 
    
         
            +
                end
         
     | 
| 
       136 
166 
     | 
    
         
             
              end 
         
     | 
| 
       137 
167 
     | 
    
         | 
| 
       138 
168 
     | 
    
         
             
            end
         
     | 
    
        data/spec/datetime/now_spec.rb
    CHANGED
    
    
    
        data/spec/datetime/parse_spec.rb
    CHANGED
    
    | 
         @@ -18,6 +18,12 @@ describe "DateTime.parse" do 
     | 
|
| 
       18 
18 
     | 
    
         
             
                DateTime.parse.should == DateTime.jd
         
     | 
| 
       19 
19 
     | 
    
         
             
              end
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 23 
     | 
    
         
            +
                c.parse.should be_kind_of(c)
         
     | 
| 
      
 24 
     | 
    
         
            +
                c.parse('2008-10-11').should be_kind_of(c)
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
       21 
27 
     | 
    
         
             
              it "can't handle a empty string" do
         
     | 
| 
       22 
28 
     | 
    
         
             
                lambda{ DateTime.parse("") }.should raise_error(ArgumentError)
         
     | 
| 
       23 
29 
     | 
    
         
             
              end
         
     | 
| 
         @@ -77,5 +77,16 @@ ruby_version_is "1.9" do 
     | 
|
| 
       77 
77 
     | 
    
         
             
                it ".xmlschema should parse an ISO8601 format" do
         
     | 
| 
       78 
78 
     | 
    
         
             
                  DateTime.xmlschema("2009-01-02T03:04:05+12:00").should == DateTime.new(2009, 1, 2, 3, 4, 5, 0.5)
         
     | 
| 
       79 
79 
     | 
    
         
             
                end
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                it "should keep the same class as the receiver" do
         
     | 
| 
      
 82 
     | 
    
         
            +
                  c = Class.new(DateTime)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  c.httpdate("Fri, 02 Jan 2009 00:00:00 GMT").should be_kind_of(c)
         
     | 
| 
      
 84 
     | 
    
         
            +
                  c.iso8601("2009-01-02").should be_kind_of(c)
         
     | 
| 
      
 85 
     | 
    
         
            +
                  c.jisx0301("H21.01.02").should be_kind_of(c)
         
     | 
| 
      
 86 
     | 
    
         
            +
                  c.rfc2822("Fri, 2 Jan 2009 00:00:00 +0000").should be_kind_of(c)
         
     | 
| 
      
 87 
     | 
    
         
            +
                  c.rfc822("Fri, 2 Jan 2009 00:00:00 +0000").should be_kind_of(c)
         
     | 
| 
      
 88 
     | 
    
         
            +
                  c.rfc3339("2009-01-02T00:00:00+00:00").should be_kind_of(c)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  c.xmlschema("2009-01-02").should be_kind_of(c)
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
       80 
91 
     | 
    
         
             
              end
         
     | 
| 
       81 
92 
     | 
    
         
             
            end
         
     | 
    
        data/spec/datetime/step_spec.rb
    CHANGED
    
    
| 
         @@ -21,6 +21,12 @@ describe "DateTime.strptime" do 
     | 
|
| 
       21 
21 
     | 
    
         
             
                DateTime.strptime("2000-04-06T10:11:12+00:00").should == DateTime.civil(2000, 4, 6, 10, 11, 12)
         
     | 
| 
       22 
22 
     | 
    
         
             
              end
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
      
 24 
     | 
    
         
            +
              it "should keep the same class as the receiver" do
         
     | 
| 
      
 25 
     | 
    
         
            +
                c = Class.new(DateTime)
         
     | 
| 
      
 26 
     | 
    
         
            +
                c.strptime.should be_kind_of(c)
         
     | 
| 
      
 27 
     | 
    
         
            +
                c.strptime('2008-10-11', '%Y-%m-%d').should be_kind_of(c)
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
       24 
30 
     | 
    
         
             
              it "should be able to parse the hour in a 24 hour clock with leading zero" do
         
     | 
| 
       25 
31 
     | 
    
         
             
                DateTime.strptime("10", '%H').should == DateTime.civil(@t.year, @t.mon, @t.day, 10, 0, 0)
         
     | 
| 
       26 
32 
     | 
    
         
             
                DateTime.strptime("09", '%H').should == DateTime.civil(@t.year, @t.mon, @t.day, 9, 0, 0)
         
     |