Class: MovieOrganizer::Video

Inherits:
Media
  • Object
show all
Defined in:
lib/movie_organizer/video.rb

Instance Attribute Summary collapse

Attributes inherited from Media

#filename, #logger, #options

Instance Method Summary collapse

Methods inherited from Media

#movie?, subtype, #tv_show?, #year

Constructor Details

#initialize(filename, options) ⇒ Video

Returns a new instance of Video.



9
10
11
12
# File 'lib/movie_organizer/video.rb', line 9

def initialize(filename, options)
  @settings = Settings.new
  super
end

Instance Attribute Details

#settingsObject (readonly)

Returns the value of attribute settings.



7
8
9
# File 'lib/movie_organizer/video.rb', line 7

def settings
  @settings
end

Instance Method Details

#date_timeObject



38
39
40
41
# File 'lib/movie_organizer/video.rb', line 38

def date_time
  filestat = File.stat(filename)
  filestat.birthtime.strftime('%Y-%m-%d @ %l:%M %p')
end

#process!(file_copier = nil) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/movie_organizer/video.rb', line 14

def process!(file_copier = nil)
  target_file = File.join(target_dir, processed_filename)
  logger.info("    target dir: [#{target_dir}]")
  logger.info("    target file: [#{target_file.green.bold}]")
  fc = file_copier || FileCopier.new(filename, target_file, options)
  fc.copy
end

#processed_filenameObject



22
23
24
# File 'lib/movie_organizer/video.rb', line 22

def processed_filename
  "#{title} (#{year})#{ext}"
end

#target_dirObject

private



45
46
47
# File 'lib/movie_organizer/video.rb', line 45

def target_dir
  File.join(MovieOrganizer.video_directory, "#{title} (#{date_time})")
end

#titleObject



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/movie_organizer/video.rb', line 26

def title
  @title ||= begin
    prompt = <<-STRING.here_with_pipe(' ')
      |Enter a friendly title for this video: [#{basename}]
      |or hit enter to keep the current title
    STRING
    new_title = MovieOrganizer.prompt_for(prompt, '')
    return File.basename(filename, ext) if new_title.nil? || new_title.empty?
    new_title
  end
end