class AudioFeedManager::AudioFileRepository

Public Instance Methods

add(audio_file, file_name) click to toggle source
# File lib/audio_feed_manager/audio_file_repository.rb, line 7
def add(audio_file, file_name)
  add_file_information(audio_file, file_name)
  audio_file = new_model_creator.create(audio_file,
                                        directory: audio_files_directory,
                                        prefix: audio_files_prefix)
  copy_file(file_name, audio_file.file_name)

  audio_file
end
fetch(id) click to toggle source
# File lib/audio_feed_manager/audio_file_repository.rb, line 17
def fetch(id)
  attrs = storage.read(id)
  AudioFile.new(attrs)
rescue FileNotFound
  raise AudioFileNotFound.for_id(id)
end

Private Instance Methods

add_file_information(audio_file, file_name) click to toggle source
# File lib/audio_feed_manager/audio_file_repository.rb, line 26
def add_file_information(audio_file, file_name)
  audio_file.extension = File.extname(file_name)
  audio_file.size = File.size(file_name)
  audio_file.content_type = `file --mime-type --brief #{file_name}`.chomp
end
copy_file(file, new_name) click to toggle source
# File lib/audio_feed_manager/audio_file_repository.rb, line 32
def copy_file(file, new_name)
  FileUtils.cp(file, data_files_directory.join(new_name))
end