file_scanner 3.2.1 → 3.2.2
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 +12 -10
- data/lib/file_scanner/version.rb +1 -1
- data/lib/file_scanner/worker.rb +6 -4
- 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: 06a7dc00a6fc9f3a0c04dd86e9a412478b339cb7
|
4
|
+
data.tar.gz: 97d28bee119ac7f840e1c55c4f9872b33e679e2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e42a649dcbe3b49b3bd3c13ba3dae2c9ba7e7a3cdeb4e1294a8951c07071e62415bdb554faa581f4e70d2b1422a4206f47ec48bed5dee8bc981d106228bb5311
|
7
|
+
data.tar.gz: 0ec10cadb7c8d9688ac98e02f9d8a4bb1c7389e5ba468da420e16970cd571b0f504fdd99c1d9cd255030ddb82b279855213b0000440e605d8e54ee24e89e5b70
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
* [Enumerator](#enumerator)
|
12
12
|
* [Consuming results](#consuming-results)
|
13
13
|
* [Mode](#mode)
|
14
|
-
* [
|
14
|
+
* [File check](#file-check)
|
15
15
|
* [Logger](#logger)
|
16
16
|
|
17
17
|
## Scope
|
@@ -48,7 +48,7 @@ If you specify no filters the default ones are loaded, selecting files by:
|
|
48
48
|
* checking if file size is within *0KB and 5KB*
|
49
49
|
* checking if file *basename matches* the specified *regexp* (if any)
|
50
50
|
|
51
|
-
You can update default filters
|
51
|
+
You can update default filters behaviour by passing custom arguments:
|
52
52
|
```ruby
|
53
53
|
a_week_ago = FileScanner::Filters::LastAccess.new(Time.now-7*24*3600)
|
54
54
|
one_two_mb = FileScanner::Filters::SizeRange.new(min: 1024**2, max: 2*1024**2)
|
@@ -74,25 +74,27 @@ p worker.call
|
|
74
74
|
```
|
75
75
|
|
76
76
|
#### Consuming results
|
77
|
-
To leverage on the lazy behaviour remember to call a subset
|
77
|
+
To leverage on the lazy behaviour remember to call a subset method on the resulting enumerator:
|
78
78
|
```ruby
|
79
|
-
worker.call.take(1000)
|
79
|
+
worker.call.take(1000).each do |file|
|
80
|
+
# perform action on filtered files
|
81
|
+
end
|
80
82
|
```
|
81
83
|
|
82
84
|
#### Mode
|
83
|
-
By default the worker
|
85
|
+
By default the worker does select paths by applying any of the matching filters: it suffice just one of the filters to match to grab the path.
|
84
86
|
In case you want restrict paths selection by all matching filters, just specify the `all` option:
|
85
87
|
```ruby
|
86
88
|
worker = FileScanner::Worker.new(loader: loader, filters: filters, all: true)
|
87
89
|
worker.call # will filter by applying all? predicate
|
88
90
|
```
|
89
91
|
|
90
|
-
####
|
91
|
-
By default the worker
|
92
|
-
In case you want restrict
|
92
|
+
#### File check
|
93
|
+
By default the worker does collect both directories and files.
|
94
|
+
In case you want restrict selction by files only, just specify the `filecheck` option:
|
93
95
|
```ruby
|
94
|
-
worker = FileScanner::Worker.new(loader: loader, filters: filters,
|
95
|
-
worker.call #
|
96
|
+
worker = FileScanner::Worker.new(loader: loader, filters: filters, filecheck: true)
|
97
|
+
worker.call # skip directories
|
96
98
|
```
|
97
99
|
|
98
100
|
#### Logger
|
data/lib/file_scanner/version.rb
CHANGED
data/lib/file_scanner/worker.rb
CHANGED
@@ -12,16 +12,17 @@ module FileScanner
|
|
12
12
|
def initialize(path:,
|
13
13
|
filters: Filters::defaults,
|
14
14
|
all: false,
|
15
|
-
|
15
|
+
filecheck: false,
|
16
16
|
logger: Logger.new(nil))
|
17
17
|
@path = File.expand_path(path)
|
18
18
|
@filters = filters
|
19
19
|
@mode = mode(all)
|
20
|
-
@
|
20
|
+
@filecheck = filecheck
|
21
21
|
@logger = logger
|
22
22
|
end
|
23
23
|
|
24
24
|
def call
|
25
|
+
@logger.debug { "skipping directories" } if @filecheck
|
25
26
|
paths.lazy.select { |file| valid?(file) && filter(file) }
|
26
27
|
rescue StandardError => e
|
27
28
|
@logger.error { e.message }
|
@@ -33,13 +34,14 @@ module FileScanner
|
|
33
34
|
end
|
34
35
|
|
35
36
|
private def valid?(file)
|
36
|
-
return true unless @
|
37
|
+
return true unless @filecheck
|
37
38
|
FileTest.file?(file)
|
38
39
|
end
|
39
40
|
|
40
41
|
private def filter(file)
|
42
|
+
@logger.debug { "filters applied by \e[35m#{@mode}\e[0m" }
|
41
43
|
@filters.send(@mode) do |filter|
|
42
|
-
@logger.debug { "filtering
|
44
|
+
@logger.debug { "filtering on \e[33m#{File.basename(file)}\e[0m" }
|
43
45
|
filter.call(file)
|
44
46
|
end
|
45
47
|
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: 3.2.
|
4
|
+
version: 3.2.2
|
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-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|