Class: CloudinarySubtitlesEmbedder::SubtitleTime
- Inherits:
-
Object
- Object
- CloudinarySubtitlesEmbedder::SubtitleTime
- Defined in:
- lib/cloudinary_subtitles_embedder/subtitle_time.rb
Class Method Summary collapse
- .multipliers ⇒ Object
- .to_seconds(duration_string) ⇒ Object
- .validate_duration_format(duration_string) ⇒ Object
Class Method Details
.multipliers ⇒ Object
4 5 6 |
# File 'lib/cloudinary_subtitles_embedder/subtitle_time.rb', line 4 def multipliers [1, 60, 3600] end |
.to_seconds(duration_string) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cloudinary_subtitles_embedder/subtitle_time.rb', line 8 def to_seconds(duration_string) validate_duration_format(duration_string) time_parts = duration_string.split('.')[0].split(':') seconds = time_parts .reverse.map(&:to_i) .zip(multipliers[0..time_parts.length]) .map {|(time_part, seconds_multiplier)| time_part * seconds_multiplier} .reduce(&:+) return seconds unless duration_string.include? '.' milliseconds = duration_string.split('.')[-1] "#{seconds}.#{milliseconds}".to_f end |
.validate_duration_format(duration_string) ⇒ Object
21 22 23 24 25 |
# File 'lib/cloudinary_subtitles_embedder/subtitle_time.rb', line 21 def validate_duration_format(duration_string) valid = duration_string =~ /^([0-9]+:)?([0-5]?[0-9]:)?([0-5]?[0-9])(\.[0-9]?[0-9])?$/ exception = ArgumentError.new('time format supports only format hours:minutes:seconds.milliseconds') raise exception unless valid end |