lib/file_scanner/worker.rb in file_scanner-2.1.1 vs lib/file_scanner/worker.rb in file_scanner-2.2.1
- old
+ new
@@ -3,22 +3,21 @@
require "file_scanner/loader"
module FileScanner
class Worker
def self.factory(path:, extensions: [], filters: [], all: false, slice: nil, limit: -1, logger: Logger.new(nil))
- loader = Loader.new(path: path, extensions: extensions)
- new(loader: loader, filters: filters, slice: slice, all: all, limit: limit, logger: logger)
+ loader = Loader.new(path: path, extensions: extensions, limit: limit)
+ new(loader: loader, filters: filters, slice: slice, all: all, logger: logger)
end
attr_reader :loader, :filters
- def initialize(loader:, filters: Filters::defaults, all: false, slice: nil, limit: -1, logger: Logger.new(nil))
+ def initialize(loader:, filters: Filters::defaults, all: false, slice: nil, logger: Logger.new(nil))
@loader = loader
@filters = filters
@all = !!all
@slice = slice.to_i
- @limit = limit.to_i
@logger = logger
end
def call
return slices unless block_given?
@@ -33,20 +32,15 @@
private def fetch_mode(mode)
return :any? unless @filters.respond_to?(mode)
mode
end
- private def files
- paths = @loader.call
- paths.select! { |file| filter(file) } || paths
+ private def filtered
+ files = @loader.call
+ files.select! { |file| filter(file) } || files
end
- private def limit
- return files if @limit <= 0
- files.first(@limit)
- end
-
private def mode
return :all? if @all
:any?
end
@@ -56,10 +50,10 @@
filter.call(file)
end
end
private def slices
- return [limit] if @slice.zero?
- limit.each_slice(@slice)
+ return [filtered] if @slice.zero?
+ filtered.each_slice(@slice)
end
end
end