Class: Subs::SubRipTime

Inherits:
Object
  • Object
show all
Defined in:
lib/subs/sub_rip_time.rb

Constant Summary collapse

ZERO =
SubRipTime.new(0, 0, 0, 0).freeze

Instance Method Summary collapse

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

#hoursObject



27
28
29
# File 'lib/subs/sub_rip_time.rb', line 27

def hours
  @ms / (1000 * 60 * 60)
end

#millisecondsObject



39
40
41
# File 'lib/subs/sub_rip_time.rb', line 39

def milliseconds
  @ms % 1000
end

#minutesObject



31
32
33
# File 'lib/subs/sub_rip_time.rb', line 31

def minutes
  (@ms / (1000 * 60)) % 60
end

#secondsObject



35
36
37
# File 'lib/subs/sub_rip_time.rb', line 35

def seconds
  (@ms / 1000) % 60
end

#to_sObject



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_msObject



13
14
15
# File 'lib/subs/sub_rip_time.rb', line 13

def total_ms
  @ms
end