Class: TimeDuration::Duration
- Inherits:
-
Object
- Object
- TimeDuration::Duration
- Includes:
- Comparable
- Defined in:
- lib/time_duration.rb
Instance Attribute Summary collapse
-
#seconds ⇒ Object
Returns the value of attribute seconds.
Class Method Summary collapse
-
.parse(time_as_string) ⇒ Object
TODO: format指定できるようにする.
Instance Method Summary collapse
- #+(time_duration) ⇒ Object
- #-(time_duration) ⇒ Object
- #<=>(time_duration) ⇒ Object
- #hours ⇒ Object
-
#initialize(hours: 0, minutes: 0, seconds: 0) ⇒ Duration
constructor
A new instance of Duration.
-
#inspect ⇒ Object
override.
- #minutes ⇒ Object
-
#to_s ⇒ Object
TODO: format指定できるようにする.
Constructor Details
#initialize(hours: 0, minutes: 0, seconds: 0) ⇒ Duration
Returns a new instance of Duration.
19 20 21 22 23 24 |
# File 'lib/time_duration.rb', line 19 def initialize(hours: 0, minutes: 0, seconds: 0) hours = hours.to_i minutes = minutes.to_i seconds = seconds.to_i @seconds = hours * 3600 + minutes * 60 + seconds end |
Instance Attribute Details
#seconds ⇒ Object
Returns the value of attribute seconds.
11 12 13 |
# File 'lib/time_duration.rb', line 11 def seconds @seconds end |
Class Method Details
.parse(time_as_string) ⇒ Object
TODO: format指定できるようにする
14 15 16 17 |
# File 'lib/time_duration.rb', line 14 def self.parse(time_as_string) hours, minutes = time_as_string.split(':').map(&:to_i) new(hours: hours, minutes: minutes) end |
Instance Method Details
#+(time_duration) ⇒ Object
39 40 41 |
# File 'lib/time_duration.rb', line 39 def +(time_duration) self.class.new(seconds: seconds + time_duration.seconds) end |
#-(time_duration) ⇒ Object
43 44 45 |
# File 'lib/time_duration.rb', line 43 def -(time_duration) self.class.new(seconds: seconds - time_duration.seconds) end |
#<=>(time_duration) ⇒ Object
47 48 49 |
# File 'lib/time_duration.rb', line 47 def <=>(time_duration) self.seconds <=> time_duration.seconds end |
#hours ⇒ Object
26 27 28 |
# File 'lib/time_duration.rb', line 26 def hours minutes / 60 + seconds / 3600 end |
#inspect ⇒ Object
override
52 53 54 |
# File 'lib/time_duration.rb', line 52 def inspect to_s end |
#minutes ⇒ Object
30 31 32 |
# File 'lib/time_duration.rb', line 30 def minutes (seconds / 60) % 60 end |
#to_s ⇒ Object
TODO: format指定できるようにする
35 36 37 |
# File 'lib/time_duration.rb', line 35 def to_s "%d:%02d" % [hours, minutes] end |