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, policies: [], logger: self.class.default_logger, slice: nil) ⇒ Worker

Returns a new instance of Worker.



13
14
15
16
17
18
19
20
21
# File 'lib/file_scanner/worker.rb', line 13

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

Instance Attribute Details

#filtersObject (readonly)

Returns the value of attribute filters.



5
6
7
# File 'lib/file_scanner/worker.rb', line 5

def filters
  @filters
end

#policiesObject (readonly)

Returns the value of attribute policies.



5
6
7
# File 'lib/file_scanner/worker.rb', line 5

def policies
  @policies
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

Instance Method Details

#callObject



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/file_scanner/worker.rb', line 23

def call
  slices.each do |slice|
    yield(slice) if block_given? && policies.empty?
    policies.each do |policy|
      @logger.info { "applying \e[33m#{policy}\e[0m to #{slice.size} files" }
      policy.call(slice)
    end
  end
rescue StandardError => e
  @logger.error { e.message }
  raise e
end