Changeset 125
- Timestamp:
- May 22, 2009, 4:51:42 PM (15 years ago)
- Location:
- ruby/trunk/lib/models
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/models/assumed_library_types.rb
r124 r125 119 119 @month = month 120 120 end 121 121 122 def day=(day) 122 123 raise ArgumentError, "Day is not valid" unless day.nil? or ISO8601_DATE.valid_day?(@year, @month, day) 123 124 @day = day 124 125 end 126 125 127 def as_string 126 128 if (!@year.nil? and !@month.nil? and !@day.nil?) … … 132 134 end 133 135 end 136 134 137 def month_unknown? 135 138 @month.nil? 136 139 end 140 137 141 def day_unknown? 138 142 @day.nil? 139 143 end 144 140 145 def is_extended? 141 146 true 142 147 end 148 143 149 def is_partial? 144 150 month_unknown? or day_unknown? … … 241 247 second_unknown? or minute_unknown? 242 248 end 249 243 250 def as_string 244 251 s = sprintf("%02d", @hour) … … 248 255 s += ":" + sprintf("%02d", @second) 249 256 if !@fractional_second.nil? 250 s += " ," + @fractional_second.to_s[2..-1]257 s += "." + @fractional_second.to_s[2..-1] 251 258 if !@timezone.nil? 252 259 s += @timezone … … 255 262 end 256 263 end 257 s264 return s 258 265 end 259 266 end … … 332 339 333 340 class ISO8601_DATE_TIME < ISO8601_DATE 334 include ISO8601_ DATE_MODULE, ISO8601_TIME_MODULE341 include ISO8601_TIME_MODULE, ISO8601_DATE_MODULE 335 342 def initialize(string) 336 343 /(\d{4})(?:-(\d{2})(?:-(\d{2})(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d+))?)?(Z|([+-]\d{2}):?(\d{2}))?)?)?)?/ =~ string … … 376 383 end 377 384 end 385 386 def as_string 387 if (!@year.nil? and !@month.nil? and !@day.nil?) 388 s = Date.new(@year, @month, @day).to_s 389 elsif (!@year.nil? and !@month.nil? and @day.nil?) 390 return Date.new(@year, @month).to_s[0,7] 391 elsif (!@year.nil? and @month.nil? and @day.nil?) 392 return Date.new(@year).to_s[0,4] 393 end 394 s += sprintf("T%02d", @hour) 395 if !@minute.nil? 396 s += ":" + sprintf("%02d",@minute) 397 if !@second.nil? 398 s += ":" + sprintf("%02d", @second) 399 if !@fractional_second.nil? 400 s += "." + @fractional_second.to_s[2..-1] 401 if !@timezone.nil? 402 s += @timezone 403 end 404 end 405 end 406 end 407 return s 408 end 409 378 410 end 379 411 -
ruby/trunk/lib/models/tests/test_assumed_library_types.rb
r124 r125 248 248 assert @iso8601_time.has_fractional_second? 249 249 assert_equal 0.23, @iso8601_time.fractional_second 250 assert_equal "23:59:59 ,23", @iso8601_time.as_string250 assert_equal "23:59:59.23", @iso8601_time.as_string 251 251 assert @iso8601_time.is_extended? 252 252 assert @iso8601_time.is_decimal_sign_comma? … … 269 269 assert_equal 0.32, @iso8601_date_time.fractional_second 270 270 assert_equal '+0900', @iso8601_date_time.timezone 271 assert_equal '2009-04-27T15:55:37.32+0900', @iso8601_date_time.as_string 271 272 assert_nothing_raised(Exception){ 272 273 @iso8601_date_time.year = 2008 }
Note:
See TracChangeset
for help on using the changeset viewer.