Class: Appydave::Tools::SubtitleMaster::Join::FileResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/appydave/tools/subtitle_manager/join.rb

Overview

Handles file resolution (folder, wildcards, sorting)

Instance Method Summary collapse

Constructor Details

#initialize(folder:, files:, sort:) ⇒ FileResolver

Returns a new instance of FileResolver.

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
18
# File 'lib/appydave/tools/subtitle_manager/join.rb', line 11

def initialize(folder:, files:, sort:)
  raise ArgumentError, 'folder is required' if folder.nil?
  raise ArgumentError, 'files is required' if files.nil?

  @folder = folder
  @files = files
  @sort = sort
end

Instance Method Details

#processObject

Raises:

  • (Errno::ENOENT)


20
21
22
23
24
25
26
27
# File 'lib/appydave/tools/subtitle_manager/join.rb', line 20

def process
  # Check if folder exists before processing
  raise Errno::ENOENT, "No such directory - #{@folder}" unless Dir.exist?(@folder)

  file_patterns = @files.split(',').map(&:strip)
  resolved_files = file_patterns.flat_map { |pattern| resolve_pattern(pattern) }
  sort_files(resolved_files)
end