Class: MemoryFileManager
- Inherits:
-
FileManager
- Object
- FileManager
- MemoryFileManager
- Defined in:
- lib/memory_file_manager.rb
Instance Attribute Summary
Attributes inherited from FileManager
Instance Method Summary collapse
- #copy_file(source_file_name, target_file_name) ⇒ Object
- #delete_file(file_name) ⇒ Object
- #download_to_temp_file(file_name) ⇒ Object
-
#initialize(options) ⇒ MemoryFileManager
constructor
A new instance of MemoryFileManager.
- #list_files(prefix = '', file_extension = '*') ⇒ Object
- #read_file(file_name) ⇒ Object
- #rename_file(original_file_name, target_file_name) ⇒ Object
- #save_file(file_name, file_contents, write_options = {}) ⇒ Object
Constructor Details
#initialize(options) ⇒ MemoryFileManager
Returns a new instance of MemoryFileManager.
5 6 7 8 |
# File 'lib/memory_file_manager.rb', line 5 def initialize() super @data = {} end |
Instance Method Details
#copy_file(source_file_name, target_file_name) ⇒ Object
44 45 46 |
# File 'lib/memory_file_manager.rb', line 44 def copy_file source_file_name, target_file_name @data["#{target_file_name}"] = @data["#{source_file_name}"] || (raise FileNotFoundError.new("No such file '#{source_file_name}'")) end |
#delete_file(file_name) ⇒ Object
26 27 28 |
# File 'lib/memory_file_manager.rb', line 26 def delete_file file_name @data.delete "#{file_name}" end |
#download_to_temp_file(file_name) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/memory_file_manager.rb', line 30 def download_to_temp_file(file_name) Dir.mktmpdir do |dir| temp_file = "#{dir}/#{Pathname(file_name).basename}" content = read_file(file_name) File.open(temp_file, 'w') { |file| file.write(content) } yield(temp_file) end end |
#list_files(prefix = '', file_extension = '*') ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/memory_file_manager.rb', line 18 def list_files(prefix = '', file_extension = '*') if prefix == '' && file_extension == '*' return @data.keys end @data.keys.select{|key| key.start_with?(prefix) && key.end_with?(".#{file_extension}")} end |
#read_file(file_name) ⇒ Object
10 11 12 |
# File 'lib/memory_file_manager.rb', line 10 def read_file file_name @data["#{file_name}"] || (raise FileNotFoundError.new("No such file '#{file_name}'")) end |
#rename_file(original_file_name, target_file_name) ⇒ Object
39 40 41 42 |
# File 'lib/memory_file_manager.rb', line 39 def rename_file original_file_name, target_file_name @data["#{target_file_name}"] = @data["#{original_file_name}"] || (raise FileNotFoundError.new("No such file '#{original_file_name}'")) @data.delete "#{original_file_name}" end |
#save_file(file_name, file_contents, write_options = {}) ⇒ Object
14 15 16 |
# File 'lib/memory_file_manager.rb', line 14 def save_file(file_name, file_contents, = {}) @data["#{file_name}"] = file_contents.to_s end |