Changeset 1548
- Timestamp:
- 05/12/05 10:15:20 (4 years ago)
- Files:
-
- trunk/lib/xsd/datatypes.rb (modified) (3 diffs)
- trunk/test/soap/test_basetype.rb (modified) (2 diffs)
- trunk/test/soap/test_mapping.rb (added)
- trunk/test/xsd/test_xsd.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/xsd/datatypes.rb
r1547 r1548 502 502 to_date 503 503 elsif klass == DateTime 504 data504 to_datetime 505 505 else 506 506 nil … … 528 528 end 529 529 530 def to_datetime 531 data 532 end 533 530 534 def tz2of(str) 531 535 /^(?:Z|(?:([+\-])(\d\d):(\d\d))?)$/ =~ str … … 557 561 def screen_data(t) 558 562 # convert t to a DateTime as an internal representation. 559 # in XML Schema Datatypes, year == 0 is not allowed so be careful with 560 # negative year representation. XSDDateTime.year(-1) == DateTime.year(0) 561 if t.is_a?(DateTime) and t.year > 0 563 if t.is_a?(DateTime) 562 564 t 565 elsif t.is_a?(Date) 566 if t.respond_to?(:to_datetime) # from 1.9 567 t.to_datetime 568 else 569 t = screen_data_str(t) 570 t <<= 12 if t.year < 0 571 t 572 end 563 573 elsif t.is_a?(Time) 564 574 sec, min, hour, mday, month, year = t.to_a[0..5] trunk/test/soap/test_basetype.rb
r1545 r1548 383 383 targets.each do |data, expected| 384 384 assert_equal(expected, SOAP::SOAPDateTime.new(data).to_s) 385 assert_equal(expected, SOAP::SOAPDateTime.new(DateTime.parse(data)).to_s) 385 d = DateTime.parse(data) 386 d >>= 12 if d.year < 0 # XSDDateTime.year(-1) == DateTime.year(0) 387 assert_equal(expected, SOAP::SOAPDateTime.new(d).to_s) 386 388 end 387 389 … … 483 485 targets.each do |data, expected| 484 486 assert_equal(expected, SOAP::SOAPDate.new(data).to_s) 485 assert_equal(expected, SOAP::SOAPDate.new(Date.parse(data)).to_s) 487 d = Date.parse(data) 488 d >>= 12 if d.year < 0 # XSDDate.year(-1) == Date.year(0) 489 assert_equal(expected, SOAP::SOAPDate.new(d).to_s) 486 490 end 487 491 end trunk/test/xsd/test_xsd.rb
r1545 r1548 415 415 targets.each do |data, expected| 416 416 assert_equal(expected, XSD::XSDDateTime.new(data).to_s) 417 assert_equal(expected, XSD::XSDDateTime.new(DateTime.parse(data)).to_s) 417 d = DateTime.parse(data) 418 d >>= 12 if d.year < 0 # XSDDateTime.year(-1) == DateTime.year(0) 419 assert_equal(expected, XSD::XSDDateTime.new(d).to_s) 418 420 end 419 421 … … 515 517 targets.each do |data, expected| 516 518 assert_equal(expected, XSD::XSDDate.new(data).to_s) 517 assert_equal(expected, XSD::XSDDate.new(Date.parse(data)).to_s) 519 d = Date.parse(data) 520 d >>= 12 if d.year < 0 # XSDDate.year(-1) == Date.year(0) 521 assert_equal(expected, XSD::XSDDate.new(d).to_s) 518 522 end 519 523 end