Работа с файловой системой в Ruby ч. 3: Стандартная библиотека Ruby: FileUtils и Pathname
июля 4, 2011 | Published in Ruby, Основы
Продолжая серию статей о File IO в Ruby, мы, в этой статье покопаемся в двух компонентах стандартной библиотеки языка Ruby, которые расширяют ядро Ruby IO API: модуль FileUtils и класс Pathname.
Модуль FileUtils
Модуль FileUtils предоставляет интересный подход к манипуляции файлами путем эмуляции множества команд Unix для работы с файлами и большинства их опций (флагов). То, что вы можете сделать командами типа rm -rf и ln -s может быть выполнено соответственно методами FileUtils.rb_rf и FileUtils.ln_s.
Так как они придерживаются синтаксиса знакомого большинству Ruby-программистов они являются очень простыми для понимания, делая список вызовов методов FileUtils очень похожим на сеанс bash. Пример, что приведен ниже демонстрирует эту схожесть:
require "fileutils" FileUtils.touch(["some_file.rb", "another_file.rb"]) FileUtils.mkdir("code") FileUtils.mv(["another_file.rb", "../other_file.rb"], "code") Dir["code/*"] #>> ["code/some_file.rb", "code/another_file.rb"] FileUtils.cp_r("code", "bkp") FileUtils.rm_r("code") Dir["code/*"] #>> [] Dir["bkp/*"] #>> ["bkp/some_file.rb", "bkp/another_file.rb"]