class Torganiser::Scanner
Handles scanning a set of directories and files and returning any found episode files.
Public Class Methods
new(files, extensions, ignored)
click to toggle source
# File lib/torganiser/scanner.rb, line 7 def initialize(files, extensions, ignored) file_query.add_extension extensions ignore ignored add_files files end
Public Instance Methods
each() { |file| ... }
click to toggle source
# File lib/torganiser/scanner.rb, line 13 def each all_files { |file| yield file unless ignored? file } end
Private Instance Methods
add_file(file)
click to toggle source
# File lib/torganiser/scanner.rb, line 54 def add_file(file) if File.file?(file) ordinary_files << file else file_query.add_directory file end end
add_files(files)
click to toggle source
# File lib/torganiser/scanner.rb, line 48 def add_files(files) files.each do |file| add_file file end end
all_files() { |file| ... }
click to toggle source
# File lib/torganiser/scanner.rb, line 19 def all_files ordinary_files.each do |file| yield file end directory_files.each do |file| yield file end end
directory_files()
click to toggle source
# File lib/torganiser/scanner.rb, line 40 def directory_files if file_query.empty? [] else Dir[file_query.pattern].select { |file| File.file?(file) } end end
file_query()
click to toggle source
# File lib/torganiser/scanner.rb, line 66 def file_query @file_query ||= FileQuery.new end
ignore(ignored)
click to toggle source
# File lib/torganiser/scanner.rb, line 32 def ignore(ignored) ignored_patterns.concat([*ignored]) end
ignored?(file)
click to toggle source
# File lib/torganiser/scanner.rb, line 28 def ignored?(file) @ignored_patterns.any? { |pattern| pattern.match file } end
ignored_patterns()
click to toggle source
# File lib/torganiser/scanner.rb, line 36 def ignored_patterns @ignored_patterns ||= [] end
ordinary_files()
click to toggle source
# File lib/torganiser/scanner.rb, line 62 def ordinary_files @ordinary_files ||= [] end