class Tartarus::RemoteStorage::Glacier::CsvExport
Constants
- DELIMITER
- ENCODING
- FILE_MODE
- NO_PATH_FOR_EXPORT
Attributes
file_service[R]
file_utils[R]
storage_directory[R]
Public Class Methods
new(storage_directory, file_service: ::File, file_utils: FileUtils)
click to toggle source
# File lib/tartarus/remote_storage/glacier/csv_export.rb, line 14 def initialize(storage_directory, file_service: ::File, file_utils: FileUtils) @storage_directory = storage_directory @file_service = file_service @file_utils = file_utils end
Public Instance Methods
export(collection, path_to_file)
click to toggle source
# File lib/tartarus/remote_storage/glacier/csv_export.rb, line 20 def export(collection, path_to_file) with_csv_export_file(path_to_file) do |file| collection.copy_to(NO_PATH_FOR_EXPORT, delimiter: DELIMITER) do |line| file.write(line.force_encoding(ENCODING)) end end end
Private Instance Methods
with_csv_export_file(path_to_file, &block)
click to toggle source
# File lib/tartarus/remote_storage/glacier/csv_export.rb, line 30 def with_csv_export_file(path_to_file, &block) file_utils.mkdir_p(storage_directory) if !file_service.exist?(storage_directory) file_service.open(path_to_file, FILE_MODE, &block) end