Class: OpenEHR::AssumedLibraryTypes::ISO8601Duration

Inherits:
TimeDefinitions show all
Includes:
ISO8601DurationModule
Defined in:
lib/open_ehr/assumed_library_types.rb

Constant Summary

Constants inherited from TimeDefinitions

TimeDefinitions::DAYS_IN_LEAP_YEAR, TimeDefinitions::DAYS_IN_WEEK, TimeDefinitions::DAYS_IN_YEAR, TimeDefinitions::HOURS_IN_DAY, TimeDefinitions::MAX_DAYS_IN_MONTH, TimeDefinitions::MAX_DAYS_IN_YEAR, TimeDefinitions::MINUTES_IN_HOUR, TimeDefinitions::MONTH_IN_YEAR, TimeDefinitions::NOMINAL_DAYS_IN_MONTH, TimeDefinitions::NOMINAL_DAYS_IN_YEAR, TimeDefinitions::SECONDS_IN_MINUTE

Instance Attribute Summary

Attributes included from ISO8601DurationModule

#days, #fractional_second, #hours, #minutes, #months, #seconds, #weeks, #years

Instance Method Summary collapse

Methods included from ISO8601DurationModule

#as_string

Methods inherited from TimeDefinitions

valid_day?, valid_hour?, valid_minute?, valid_month?, valid_second?, valid_year?

Constructor Details

#initialize(str) ⇒ ISO8601Duration

Returns a new instance of ISO8601Duration.



612
613
614
615
616
617
618
619
620
621
622
623
624
# File 'lib/open_ehr/assumed_library_types.rb', line 612

def initialize(str)
  /^P((\d+)Y)?((\d+)M)?((\d+)W)?((\d)D)?(T((\d+)H)?((\d+)M)?((\d+)(\.\d+)?S)?)?$/ =~ str
  self.years = $2.to_i
  self.months = $4.to_i
  self.weeks = $6.to_i
  self.days = $8.to_i
  self.hours = $11.to_i
  self.minutes = $13.to_i
  self.seconds = $15.to_i
  unless $16.nil?
    self.fractional_second = $16.to_f
  end
end