Class: Puppet::Pops::Time::TimeData
- Includes:
- LabelProvider
- Defined in:
- lib/puppet/pops/time/timespan.rb
Overview
TimeData is a Numeric that stores its value internally as nano-seconds but will be considered to be seconds and fractions of seconds when used in arithmetic or comparison with other Numeric types.
Constant Summary
Constants included from LabelProvider
LabelProvider::A, LabelProvider::AN, LabelProvider::SKIPPED_CHARACTERS, LabelProvider::VOWELS
Instance Attribute Summary collapse
-
#nsecs ⇒ Object
readonly
Returns the value of attribute nsecs.
Instance Method Summary collapse
- #<=>(o) ⇒ Object
-
#initialize(nanoseconds) ⇒ TimeData
constructor
A new instance of TimeData.
- #label(o) ⇒ Object
-
#to_c ⇒ Complex
Short for ‘#to_f.to_c`.
-
#to_f ⇒ Float
The number of seconds.
- #to_i ⇒ Object
-
#to_int ⇒ Integer
The number of seconds with fraction part truncated.
-
#to_r ⇒ Rational
Initial numerator is nano-seconds and denominator is nano-seconds per second.
Methods included from LabelProvider
#a_an, #a_an_uc, #article, #combine_strings, #plural_s, #the, #the_uc
Constructor Details
#initialize(nanoseconds) ⇒ TimeData
Returns a new instance of TimeData.
29 30 31 |
# File 'lib/puppet/pops/time/timespan.rb', line 29 def initialize(nanoseconds) @nsecs = nanoseconds end |
Instance Attribute Details
#nsecs ⇒ Object (readonly)
Returns the value of attribute nsecs.
27 28 29 |
# File 'lib/puppet/pops/time/timespan.rb', line 27 def nsecs @nsecs end |
Instance Method Details
#<=>(o) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/puppet/pops/time/timespan.rb', line 33 def <=>(o) case o when self.class @nsecs <=> o.nsecs when Integer to_int <=> o when Float to_f <=> o else nil end end |
#label(o) ⇒ Object
46 47 48 |
# File 'lib/puppet/pops/time/timespan.rb', line 46 def label(o) Utils.name_to_segments(o.class.name).last end |
#to_c ⇒ Complex
Returns short for ‘#to_f.to_c`.
65 66 67 |
# File 'lib/puppet/pops/time/timespan.rb', line 65 def to_c to_f.to_c end |
#to_f ⇒ Float
Returns the number of seconds.
51 52 53 |
# File 'lib/puppet/pops/time/timespan.rb', line 51 def to_f @nsecs.fdiv(NSECS_PER_SEC) end |
#to_i ⇒ Object
60 61 62 |
# File 'lib/puppet/pops/time/timespan.rb', line 60 def to_i to_int end |
#to_int ⇒ Integer
Returns the number of seconds with fraction part truncated.
56 57 58 |
# File 'lib/puppet/pops/time/timespan.rb', line 56 def to_int @nsecs / NSECS_PER_SEC end |
#to_r ⇒ Rational
Returns initial numerator is nano-seconds and denominator is nano-seconds per second.
70 71 72 |
# File 'lib/puppet/pops/time/timespan.rb', line 70 def to_r Rational(@nsecs, NSECS_PER_SEC) end |