file_scanner 2.2.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +0 -10
- data/lib/file_scanner/version.rb +1 -1
- data/lib/file_scanner/worker.rb +6 -17
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e94d61fa43f097a1912390317cde01b2119b997
|
4
|
+
data.tar.gz: 12a767ee4da87adf667e5cdee448e3f473a8a233
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 526f96d30f7e39d148eaed24e90266ba44edfb1c509618691be479e66fda569e3d001903f9e05234fea0e60a4a7749b0d1bc0534fe125be9a1621357d9126388
|
7
|
+
data.tar.gz: 8c86dfc6a68ddd431a4656f7c833759f46717d89d8d89d967b0912de12505b562df93b3512474bbe111481c40b9eb810cf01e1f1d27b3966abb64a9617f5dc4f
|
data/README.md
CHANGED
@@ -14,7 +14,6 @@
|
|
14
14
|
* [Limit](#limit)
|
15
15
|
* [Enumerator](#enumerator)
|
16
16
|
* [Logger](#logger)
|
17
|
-
* [Factory](#factory)
|
18
17
|
|
19
18
|
## Scope
|
20
19
|
This gem is aimed to collect a set of file paths starting by a wildcard rule, filter them by any/all default/custom filters (access time, matching name and size range) and apply a set of actions via a block call.
|
@@ -132,12 +131,3 @@ worker.call do |slice, logger|
|
|
132
131
|
FileUtils.rm_rf(slice)
|
133
132
|
end
|
134
133
|
```
|
135
|
-
|
136
|
-
#### Factory
|
137
|
-
You can create loader and worker instances at once by using the available factory:
|
138
|
-
```ruby
|
139
|
-
worker = FileScanner::Worker.factory(path: ENV["HOME"], extensions: %w[html txt], filters: filters, all: true, slice: 1000, limit: 6000, logger: my_logger)
|
140
|
-
worker.call do |slice, logger|
|
141
|
-
# filters applied on a maximum of 6000 paths, working a slice of 1000 files per time
|
142
|
-
end
|
143
|
-
```
|
data/lib/file_scanner/version.rb
CHANGED
data/lib/file_scanner/worker.rb
CHANGED
@@ -4,17 +4,12 @@ require "file_scanner/loader"
|
|
4
4
|
|
5
5
|
module FileScanner
|
6
6
|
class Worker
|
7
|
-
def self.factory(path:, extensions: [], filters: [], all: false, slice: nil, limit: -1, logger: Logger.new(nil))
|
8
|
-
loader = Loader.new(path: path, extensions: extensions, limit: limit)
|
9
|
-
new(loader: loader, filters: filters, slice: slice, all: all, logger: logger)
|
10
|
-
end
|
11
|
-
|
12
7
|
attr_reader :loader, :filters
|
13
8
|
|
14
9
|
def initialize(loader:, filters: Filters::defaults, all: false, slice: nil, logger: Logger.new(nil))
|
15
10
|
@loader = loader
|
16
11
|
@filters = filters
|
17
|
-
@
|
12
|
+
@mode = mode(all)
|
18
13
|
@slice = slice.to_i
|
19
14
|
@logger = logger
|
20
15
|
end
|
@@ -29,24 +24,18 @@ module FileScanner
|
|
29
24
|
raise e
|
30
25
|
end
|
31
26
|
|
32
|
-
private def fetch_mode(mode)
|
33
|
-
return :any? unless @filters.respond_to?(mode)
|
34
|
-
mode
|
35
|
-
end
|
36
|
-
|
37
27
|
private def filtered
|
38
|
-
|
39
|
-
files.select! { |file| filter(file) } || files
|
28
|
+
@loader.call.select { |file| filter(file) }
|
40
29
|
end
|
41
30
|
|
42
|
-
private def mode
|
43
|
-
return :all? if
|
31
|
+
private def mode(all)
|
32
|
+
return :all? if all
|
44
33
|
:any?
|
45
34
|
end
|
46
35
|
|
47
36
|
private def filter(file)
|
48
|
-
@filters.send(mode) do |filter|
|
49
|
-
@logger.debug { "
|
37
|
+
@filters.send(@mode) do |filter|
|
38
|
+
@logger.debug { "filtering by \e[33m#{@mode}\e[0m with \e[33m#{filter}\e[0m on #{File.basename(file)}" }
|
50
39
|
filter.call(file)
|
51
40
|
end
|
52
41
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: file_scanner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- costajob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|