class FileScanner::Worker
Constants
- ALL
- ANY
Attributes
filters[R]
path[R]
Public Class Methods
new(path:, filters: Filters::defaults, all: false, filecheck: false, logger: Logger.new(nil))
click to toggle source
# File lib/file_scanner/worker.rb, line 12 def initialize(path:, filters: Filters::defaults, all: false, filecheck: false, logger: Logger.new(nil)) @path = File.expand_path(path) << File::SEPARATOR @filters = filters @mode = mode(all) @filecheck = filecheck @logger = logger end
Public Instance Methods
call()
click to toggle source
# File lib/file_scanner/worker.rb, line 24 def call @logger.info { "scanning \e[1m#{@path}\e[0m..." } @logger.debug { "skipping directories" } if @filecheck @logger.debug { "applying \e[36m#{@filters.size}\e[0m filters by \e[35m#{@mode}\e[0m" } paths.lazy.select { |file| valid?(file) && filter(file) } rescue StandardError => e @logger.error { e.message } raise e end
Private Instance Methods
filter(file)
click to toggle source
# File lib/file_scanner/worker.rb, line 43 def filter(file) @filters.send(@mode) do |filter| @logger.debug { "filtering \e[37m#{File.basename(file)}\e[0m" } filter.call(file) end end
mode(all)
click to toggle source
# File lib/file_scanner/worker.rb, line 34 def mode(all) all ? ALL : ANY end
paths()
click to toggle source
# File lib/file_scanner/worker.rb, line 50 def paths Find.find(@path) end
valid?(file)
click to toggle source
# File lib/file_scanner/worker.rb, line 38 def valid?(file) return true unless @filecheck FileTest.file?(file) end