Module: MovieOrganizer

Defined in:
lib/movie_organizer/settings.rb,
lib/movie_organizer.rb,
lib/movie_organizer/media.rb,
lib/movie_organizer/movie.rb,
lib/movie_organizer/video.rb,
lib/movie_organizer/logger.rb,
lib/movie_organizer/tv_show.rb,
lib/movie_organizer/version.rb,
lib/movie_organizer/organizer.rb,
lib/movie_organizer/media_list.rb,
lib/movie_organizer/file_copier.rb

Overview

:nocov:

Defined Under Namespace

Classes: FileCopier, Logger, Media, MediaList, Movie, Organizer, Settings, TvShow, Video

Constant Summary collapse

VERSION =
'0.1.10'.freeze

Class Method Summary collapse

Class Method Details

.config_file(filename = '.movie_organizer.yml') ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/movie_organizer.rb', line 20

def self.config_file(filename = '.movie_organizer.yml')
  return root.join('spec', 'fixtures', filename) if current_environment == 'test'
  #:nocov:
  home = ENV.fetch('HOME')
  file = ENV.fetch('MO_CONFIG_FILE', File.join(home, '.movie_organizer.yml'))
  FileUtils.touch(file)
  file
  #:nocov:
end

.current_environmentObject



16
17
18
# File 'lib/movie_organizer.rb', line 16

def self.current_environment
  ENV.fetch('APP_ENV', 'development')
end

.movie_directory(settings = Settings.new, test_response = nil) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/movie_organizer.rb', line 48

def self.movie_directory(settings = Settings.new, test_response = nil)
  return settings[:movies][:directory] if settings[:movies] && settings[:movies][:directory]
  settings[:movies] ||= {}
  settings[:movies][:directory] =
    prompt_for('Movie destination directory', test_response)
  settings.save
  settings[:movies][:directory]
end

.prompt_for(message = '', test_response = nil) ⇒ Object

:nocov:



76
77
78
79
80
# File 'lib/movie_organizer.rb', line 76

def self.prompt_for(message = '', test_response = nil)
  prompt = "#{message.dup}\n? "
  return test_response if test_response
  Readline.readline(prompt, true).squeeze(' ').strip
end

.rootObject



12
13
14
# File 'lib/movie_organizer.rb', line 12

def self.root
  Pathname.new(File.dirname(__FILE__)).parent
end

.source_directories(settings = Settings.new, test_response = nil) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/movie_organizer.rb', line 30

def self.source_directories(settings = Settings.new, test_response = nil)
  settings[:new_media_directories] || begin
    strings = prompt_for('Media source directories (separated by a colon)', test_response)
    settings[:new_media_directories] = strings.split(':')
    settings.save
    settings[:new_media_directories]
  end
end

.tmdb_key(settings = Settings.new, test_response = nil) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/movie_organizer.rb', line 39

def self.tmdb_key(settings = Settings.new, test_response = nil)
  return settings[:movies][:tmdb_key] if settings[:movies] && settings[:movies][:tmdb_key]
  settings[:movies] ||= {}
  settings[:movies][:tmdb_key] =
    prompt_for('TMDB API key (https://www.themoviedb.org/)', test_response)
  settings.save
  settings[:movies][:tmdb_key]
end

.tv_shows_directory(settings = Settings.new, test_response = nil) ⇒ Object



57
58
59
60
61
62
63
64
# File 'lib/movie_organizer.rb', line 57

def self.tv_shows_directory(settings = Settings.new, test_response = nil)
  return settings[:tv_shows][:directory] if settings[:tv_shows] && settings[:tv_shows][:directory]
  settings[:tv_shows] ||= {}
  settings[:tv_shows][:directory] =
    prompt_for('TV show destination directory', test_response)
  settings.save
  settings[:tv_shows][:directory]
end

.video_directory(settings = Settings.new, test_response = nil) ⇒ Object



66
67
68
69
70
71
72
73
# File 'lib/movie_organizer.rb', line 66

def self.video_directory(settings = Settings.new, test_response = nil)
  return settings[:videos][:directory] if settings[:videos] && settings[:videos][:directory]
  settings[:videos] ||= {}
  settings[:videos][:directory] =
    prompt_for('Video destination directory', test_response)
  settings.save
  settings[:videos][:directory]
end