Я строю специализированный конвейер, и, по сути, каждый шаг в конвейере включает в себя один файл в качестве входных данных и создание другого файла в качестве выходных данных.Не все файлы находятся в одном и том же каталоге, все выходные файлы имеют другой формат, и, поскольку я использую несколько разных программ, необходимо выполнить разные действия, чтобы успокоить разные программы.
Это привело к некоторому сложному управлению файлами в моем коде, и чем больше я пытаюсь организовать каталоги файлов, тем более уродливым он становится.Почти каждый класс включает в себя какой-то код, подобный следующему:
@fileName = File.basename(file)
@dataPath = "#{$path}/../data/"
MzmlToOther.new("mgf", "#{@dataPath}/spectra/#{@fileName}.mzML", 1, false).convert
system("wine readw.exe --mzXML #{@file}.raw #{$path}../data/spectra/#{File.basename(@file + ".raw", ".raw")}.mzXML 2>/dev/null")
fileName = "#{$path}../data/" + parts[0] + parts[1][6..parts[1].length-1].chomp(".pep.xml")
Есть ли какой-то шаблон проектирования, рубиновый гем или что-то, чтобы это убрать?Мне нравится писать чистый код, так что это действительно начинает беспокоить меня.