Module: FileTestHelper
- Includes:
- FileUtils
- Defined in:
- lib/file_test_helper.rb
Instance Method Summary collapse
-
#with_files(files_with_contents = {}) ⇒ Object
Specify the files you need to create in a hash.
- #with_files_in_directory(base_dir, files_with_contents) ⇒ Object
Instance Method Details
#with_files(files_with_contents = {}) ⇒ Object
Specify the files you need to create in a hash. The keys of the hash represent the file path and the value represents it’s content. Examples:
-
dir/a file’ => ‘content’ creates the ‘a dir’ directory containing an ‘a file’ file which content is ‘content’.
-
dir/’ => ” creates an empty ‘another dir’ directory. The value must be an empty string.
Optionally you can specify a different base directory (other than the default tmp) to use as a base directory. Example:
-
‘stylesheets’, ‘file.txt’ => “” will create the file.txt file inside the existent stylesheets directory. The stylesheets directory won’t be deleted
14 15 16 17 18 |
# File 'lib/file_test_helper.rb', line 14 def with_files(files_with_contents = {}) with_files_in_directory(nil, files_with_contents) do yield end end |
#with_files_in_directory(base_dir, files_with_contents) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/file_test_helper.rb', line 20 def with_files_in_directory(base_dir, files_with_contents) stdout = $stdout $stdout = File.new('/dev/null', 'w') initial_directory = current_directory raise ArgumentError, "The base directory '#{base_dir}' does not exist." if base_dir && !File.exist?(base_dir) working_directory = base_dir || create_working_directory begin create_files_in_working_directory(working_directory, files_with_contents) $stdout = stdout yield ensure $stdout = File.new('/dev/null', 'w') cd initial_directory if base_dir.nil? remove_dir(working_directory) if File.exist?(working_directory) else remove_files(base_dir, files_with_contents) end end ensure $stdout = stdout end |