Class: FileScanner::Worker

Inherits:
Object
  • Object
show all
Defined in:
lib/file_scanner/worker.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(loader:, filters: Filters::defaults, logger: self.class.default_logger, slice: nil) ⇒ Worker

Returns a new instance of Worker.



20
21
22
23
24
25
# File 'lib/file_scanner/worker.rb', line 20

def initialize(loader:, filters: Filters::defaults, logger: self.class.default_logger, slice: nil)
  @loader = loader
  @filters = filters
  @slice = slice.to_i
  @logger = logger
end

Instance Attribute Details

#filtersObject (readonly)

Returns the value of attribute filters.



18
19
20
# File 'lib/file_scanner/worker.rb', line 18

def filters
  @filters
end

#loaderObject (readonly)

Returns the value of attribute loader.



18
19
20
# File 'lib/file_scanner/worker.rb', line 18

def loader
  @loader
end

Class Method Details

.default_loggerObject



7
8
9
10
11
# File 'lib/file_scanner/worker.rb', line 7

def self.default_logger
  Logger.new(nil).tap do |logger|
    logger.level = Logger::ERROR
  end
end

.factory(path:, extensions: [], filters: [], logger: default_logger, slice: nil) ⇒ Object



13
14
15
16
# File 'lib/file_scanner/worker.rb', line 13

def self.factory(path:, extensions: [], filters: [], logger: default_logger, slice: nil)
  loader = Loader.new(path: path, extensions: extensions)
  new(loader: loader, filters: filters, logger: logger, slice: slice)
end

Instance Method Details

#callObject



27
28
29
30
31
32
33
34
35
# File 'lib/file_scanner/worker.rb', line 27

def call
  return slices unless block_given?
  slices.each do |slice|
    yield(slice, @logger)
  end
rescue StandardError => e
  @logger.error { e.message }
  raise e
end