Class: MovieOrganizer::Movie

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

Instance Attribute Summary

Attributes inherited from Media

#filename, #logger, #options, #settings

Instance Method Summary collapse

Methods inherited from Media

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

Constructor Details

#initialize(filename, options) ⇒ Movie

Returns a new instance of Movie.



8
9
10
# File 'lib/movie_organizer/movie.rb', line 8

def initialize(filename, options)
  super
end

Instance Method Details

#process!Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/movie_organizer/movie.rb', line 12

def process!
  settings = Settings.new
  target_dir = File.join(
    settings[:movies][:directory],
    "#{title} (#{year})"
  )
  FileUtils.mkdir_p(target_dir, noop: dry_run?)
  target_file = File.join(
    target_dir,
    processed_filename
  )
  logger.info("    target dir: [#{target_dir}]")
  logger.info("    target file: [#{target_file.green.bold}]")
  fc = FileCopier.new(filename, target_file, options)
  fc.copy
end

#processed_filenameObject



29
30
31
# File 'lib/movie_organizer/movie.rb', line 29

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

#titleObject



33
34
35
36
37
38
39
# File 'lib/movie_organizer/movie.rb', line 33

def title
  ext_regex = Regexp.new(ext.sub(/\./, '\\.'))
  newbase = sanitize(
    basename.sub(/#{ext_regex}$/, '').sub(/\(?#{year}\)?/, '')
  )
  @title ||= newbase
end