eac_fs 0.12.3 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e780113034822a4d59e1212ad4a1f8754a6d927c039e60c45801b5985219c35b
4
- data.tar.gz: 138ad3746edba0031955120f0f1735a0b1424f865eccb4707f8b3939fc0ca0d7
3
+ metadata.gz: 72b813f16e52d3d6aec045e053b008f8a758518bf7d032f45026dcc1023359ce
4
+ data.tar.gz: 0455d5d966ab2f2134c5757f7e36885eb727a03f335512a837e5ed14cdb3413e
5
5
  SHA512:
6
- metadata.gz: bc825bd686ec332a818b5c60d3fdb443084077c06958711af1a89106114ab4eef9eeda1ac25046fe354105945c0c702992d31a280543f0236e04f0547e930b8c
7
- data.tar.gz: 4d6f6cf55371dcbbe3d954b3af0730ab86a036c59c3c5df0fe86a0ebd1b97f22850e9b6ce273cb3964496375164a6766d1322df236847b083adda1909327087a
6
+ metadata.gz: 20b89a16b8c56a46cc6310dcb0c7db9e8d4a8e09a9e329507861111630903598062b905116b5404225312abc5b0b2817f7781d0b9d5144f6db81a6d344164d75
7
+ data.tar.gz: f8b1c3a0c0f1a00750aabd037922453b9de167893817ce72330571bc5381c198f82a8ae6116278251745d7d931007abe11ec526c0d2b1c39c4dd5af4596ba684
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacFs
6
+ class Comparator
7
+ class RenameFile
8
+ common_constructor :from, :to
9
+
10
+ def apply(basename)
11
+ basename == from ? to : basename
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacFs
6
+ class Comparator
7
+ require_sub __FILE__
8
+
9
+ TRUNCATE_FILE_CONTENT = "__TRUNCATED__\n"
10
+
11
+ enable_immutable
12
+ immutable_accessor :rename_file, :truncate_file, type: :array
13
+
14
+ # @return [Hash]
15
+ def build(obj)
16
+ if obj.file?
17
+ build_file(obj)
18
+ elsif obj.directory?
19
+ build_directory(obj)
20
+ else
21
+ raise "Unknown filesystem object \"#{obj}\""
22
+ end
23
+ end
24
+
25
+ alias rename_file_push rename_file
26
+
27
+ def rename_file(from, to)
28
+ rename_file_push(::EacFs::Comparator::RenameFile.new(from, to))
29
+ end
30
+
31
+ private
32
+
33
+ # @param dir [Pathname]
34
+ # @return [Hash]
35
+ def build_directory(dir)
36
+ dir.children.map do |child|
37
+ [fs_object_basename(child), build(child)]
38
+ end.to_h
39
+ end
40
+
41
+ # @param file [Pathname]
42
+ # @return [Hash]
43
+ def build_file(file)
44
+ return TRUNCATE_FILE_CONTENT if truncate_files.include?(file.basename.to_path)
45
+
46
+ file.read
47
+ end
48
+
49
+ # @return [String]
50
+ def fs_object_basename(obj)
51
+ rename_files.inject(obj.basename.to_path) { |a, e| e.apply(a) }
52
+ end
53
+ end
54
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacFs
4
- VERSION = '0.12.3'
4
+ VERSION = '0.13.0'
5
5
  end
metadata CHANGED
@@ -1,57 +1,75 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_fs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.3
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-21 00:00:00.000000000 Z
11
+ date: 2022-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: content-type
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.0'
17
20
  - - ">="
18
21
  - !ruby/object:Gem::Version
19
- version: '0'
22
+ version: 0.0.2
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.0'
24
30
  - - ">="
25
31
  - !ruby/object:Gem::Version
26
- version: '0'
32
+ version: 0.0.2
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: eac_ruby_utils
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '0.70'
39
+ version: '0.106'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.106.1
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - "~>"
39
48
  - !ruby/object:Gem::Version
40
- version: '0.70'
49
+ version: '0.106'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.106.1
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: ruby-filemagic
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.7'
45
60
  - - ">="
46
61
  - !ruby/object:Gem::Version
47
- version: '0'
62
+ version: 0.7.3
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.7'
52
70
  - - ">="
53
71
  - !ruby/object:Gem::Version
54
- version: '0'
72
+ version: 0.7.3
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: eac_ruby_gem_support
57
75
  requirement: !ruby/object:Gem::Requirement
@@ -74,6 +92,8 @@ extra_rdoc_files: []
74
92
  files:
75
93
  - lib/eac_fs.rb
76
94
  - lib/eac_fs/cached_download.rb
95
+ - lib/eac_fs/comparator.rb
96
+ - lib/eac_fs/comparator/rename_file.rb
77
97
  - lib/eac_fs/contexts.rb
78
98
  - lib/eac_fs/file_info.rb
79
99
  - lib/eac_fs/logs.rb