Class: Subs::SubRipTime
- Inherits:
-
Object
- Object
- Subs::SubRipTime
- Defined in:
- lib/subs/sub_rip_time.rb
Constant Summary collapse
- ZERO =
SubRipTime.new(0, 0, 0, 0).freeze
Instance Method Summary collapse
- #+(amount) ⇒ Object
- #-(amount) ⇒ Object
- #hours ⇒ Object
-
#initialize(hour, minute, second, millisecond) ⇒ SubRipTime
constructor
A new instance of SubRipTime.
- #milliseconds ⇒ Object
- #minutes ⇒ Object
- #seconds ⇒ Object
- #to_s ⇒ Object
- #total_ms ⇒ Object
Constructor Details
#initialize(hour, minute, second, millisecond) ⇒ SubRipTime
Returns a new instance of SubRipTime.
4 5 6 7 8 9 |
# File 'lib/subs/sub_rip_time.rb', line 4 def initialize(hour, minute, second, millisecond) @ms = millisecond @ms += second * 1000 @ms += minute * 60 * 1000 @ms += hour * 60 * 60 * 1000 end |
Instance Method Details
#+(amount) ⇒ Object
22 23 24 25 |
# File 'lib/subs/sub_rip_time.rb', line 22 def +(amount) value = amount.is_a?(SubRipTime) ? amount.total_ms : Integer(amount) self.class.new(0, 0, 0, [@ms + value, 0].max) end |
#-(amount) ⇒ Object
17 18 19 20 |
# File 'lib/subs/sub_rip_time.rb', line 17 def -(amount) value = amount.is_a?(SubRipTime) ? amount.total_ms : Integer(amount) self.class.new(0, 0, 0, [@ms - value, 0].max) end |
#hours ⇒ Object
27 28 29 |
# File 'lib/subs/sub_rip_time.rb', line 27 def hours @ms / (1000 * 60 * 60) end |
#milliseconds ⇒ Object
39 40 41 |
# File 'lib/subs/sub_rip_time.rb', line 39 def milliseconds @ms % 1000 end |
#minutes ⇒ Object
31 32 33 |
# File 'lib/subs/sub_rip_time.rb', line 31 def minutes (@ms / (1000 * 60)) % 60 end |
#seconds ⇒ Object
35 36 37 |
# File 'lib/subs/sub_rip_time.rb', line 35 def seconds (@ms / 1000) % 60 end |
#to_s ⇒ Object
43 44 45 |
# File 'lib/subs/sub_rip_time.rb', line 43 def to_s "%02d:%02d:%02d,%03d" % [hours, minutes, seconds, milliseconds] end |
#total_ms ⇒ Object
13 14 15 |
# File 'lib/subs/sub_rip_time.rb', line 13 def total_ms @ms end |