eac_fs 0.12.2 → 0.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb08574c0af48e0a408539d2576f6ddba046e40554b8808ad5a365ad63a9ae9c
4
- data.tar.gz: 5ca28737c5a580fa44dc424e082e52eca4b52b4d516fa13b8c9f09e67b14a405
3
+ metadata.gz: 72b813f16e52d3d6aec045e053b008f8a758518bf7d032f45026dcc1023359ce
4
+ data.tar.gz: 0455d5d966ab2f2134c5757f7e36885eb727a03f335512a837e5ed14cdb3413e
5
5
  SHA512:
6
- metadata.gz: edb1b09f5f6a8a677d100af4646f332dd10fc53784f5e5835107f83a668cf9fecb7013e25c5fffc965896c793dbccf0080309f020f0ea1e4b60c8604b5187d83
7
- data.tar.gz: a3b4a0e508d249182c594bd7df5cde6bf51eeffd90a594e923ffa14adfdc51eeb85c9df0c371d1902faab065246d10f169c660e64ac4e514d85f8fa15f1cf36f
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.2'
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.2
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-07 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