Class: SrtSubtitleValidator::Cli

Inherits:
Thor
  • Object
show all
Defined in:
lib/srt_subtitle_validator/cli.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.srt_default_optionsObject



15
16
17
18
19
# File 'lib/srt_subtitle_validator/cli.rb', line 15

def self.srt_default_options
  method_option :without_backup, default: false, type: :boolean, desc: 'Skip backuping original SRT file'
  method_option :output, aliases: '-o', default: nil, type: :string, desc: 'Output directory (file)'
  method_option :encoding, aliases: '-e', default: "cp1250", type: :string, desc: 'Output directory (file)'
end

Instance Method Details

#check(*files) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/srt_subtitle_validator/cli.rb', line 23

def check(*files)
  files_to_convert = Array.new
  Array(files).each do |file|
    validator = SrtSubtitleValidator::Validator.new(file)
    say("\n == #{validator.file_name} -> ")
    if validator.valid?
      say 'SRT file is valid', :green
    else
      say 'SRT file is invalid, with following errors: ', :red, true
      validator.srt.errors.each { |e| say "* #{e}" }
      files_to_convert << validator
    end
  end
  if files_to_convert.any? && yes?("Try to convert  #{files_to_convert.length} files ?")
    files_to_convert.each { |f| f.convert_srt(options[:output], options[:without_backup]) }
  end

end

#convert(*files) ⇒ Object



45
46
47
48
49
50
51
52
# File 'lib/srt_subtitle_validator/cli.rb', line 45

def convert(*files)
  Array(files).each do |file|
    validator = SrtSubtitleValidator::Validator.new(file)
    unless validator.valid?
      validator.convert_srt(options[:output], options[:without_backup])
    end
  end
end