Changeset 401
- Timestamp:
- Jan 25, 2010, 5:35:20 PM (14 years ago)
- Location:
- ruby/trunk
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
ruby/trunk/lib/open_ehr/am/archetype/constraint_model/primitive.rb
r400 r401 256 256 end 257 257 end 258 259 class CDuration < CPrimitive 260 attr_reader :range 261 attr_accessor :years_allowed, :months_allowed, :weeks_allowed, 262 :days_allowed, :hours_allowed, :minutes_allowed, 263 :seconds_allowed, :fractional_seconds_allowed 264 265 def initialize(args = { }) 266 super 267 self.fractional_seconds_allowed = args[:fractional_seconds_allowed] 268 self.seconds_allowed = args[:seconds_allowed] 269 self.minutes_allowed = args[:minutes_allowed] 270 self.hours_allowed = args[:hours_allowed] 271 self.days_allowed = args[:days_allowed] 272 self.months_allowed = args[:months_allowed] 273 self.weeks_allowed = args[:weeks_allowed] 274 self.years_allowed = args[:years_allowed] 275 self.range = args[:range] 276 end 277 278 def range=(range) 279 if range.nil? && !(@years_allowed || 280 @months_allowed || 281 @weeks_allowed || 282 @days_allowed || 283 @hours_allowed || 284 @minutes_allowed || 285 @seconds_allowed || 286 @fractional_seconds_allowed) 287 raise ArgumentError, 'invalid range' 288 end 289 @range = range 290 end 291 end 258 292 end # of Primitive 259 293 end # of CostraintModel -
ruby/trunk/lib/open_ehr/assumed_library_types.rb
r398 r401 165 165 end 166 166 167 def to_days 168 days = nilthenzero(@year)*TimeDefinitions::NOMINAL_DAYS_IN_YEAR + 169 nilthenzero(@month)*TimeDefinitions::NOMINAL_DAYS_IN_MONTH + 170 nilthenzero(@day) 171 return days 172 end 173 167 174 def month_unknown? 168 175 @month.nil? … … 217 224 218 225 def <=>(other) 219 magnitude = 220 nilthenzero(@year)*TimeDefinitions::NOMINAL_DAYS_IN_YEAR + 221 nilthenzero(@month)*TimeDefinitions::NOMINAL_DAYS_IN_MONTH + 222 nilthenzero(@day) 223 other_magnitude = 224 nilthenzero(other.year)*TimeDefinitions::NOMINAL_DAYS_IN_YEAR + 225 nilthenzero(other.month)*TimeDefinitions::NOMINAL_DAYS_IN_MONTH + 226 nilthenzero(other.day) 227 magnitude <=> other_magnitude 226 self.to_days <=> other.to_days 228 227 end 229 228 … … 322 321 end 323 322 324 323 def to_second 324 second = (nilthenzero(@hour)*60 + nilthenzero(@minute))*60 + 325 nilthenzero(@second) + 326 nilthenzero(@fractional_second) 327 return second 328 end 325 329 end 326 330 … … 357 361 358 362 def <=>(other) 359 magnitude = (nilthenzero(@hour)*60 + nilthenzero(@minute))*60 + 360 nilthenzero(@second) + 361 nilthenzero(@fractional_second) 362 other_magnitude = (nilthenzero(other.hour) * 60 + 363 nilthenzero(other.minute)) * 60 + 364 nilthenzero(other.second) + 365 nilthenzero(other.fractional_second) 366 magnitude <=> other_magnitude 363 self.to_second <=> other.to_second 367 364 end 368 365 … … 480 477 end 481 478 end 479 480 def <=>(other) 481 self.magnitude <=> other.magnitude 482 end 483 484 protected 485 def magnitude 486 return self.to_days*HOURS_IN_DAY*MINUTES_IN_HOUR*SECONDS_IN_MINUTE + 487 self.to_second 488 end 482 489 end 483 490
Note:
See TracChangeset
for help on using the changeset viewer.