avm-files 0.5.0 → 0.6.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: d5d5cb06e33cdfb8e9c6b35d9349dfdfebd3751af5fa4ee2c7809769c97e4941
4
- data.tar.gz: fcfc92226e4436f50623e2e29d40f21ddb7fdb9c4d7a5bfb401e9b73f58f7bb1
3
+ metadata.gz: e510cd75129a6011f2667901c52525f77fbbdab82704ba4d57fafb41c92c5210
4
+ data.tar.gz: d303097f76578bc209d1774fb155d37ce798ce18f34680ffec3baf737b72d7e8
5
5
  SHA512:
6
- metadata.gz: da6fb0ff60feff999ccabc04353c5db56aa76412508c583a4d0f48f54b1522305cc849c1d17c4cebf7bdf4013ceb8caf2b2066b29329e2f9563f5c8bbf9c244b
7
- data.tar.gz: e6c8d78575769d1e4b0fa4115b74d54875bbc8b89d24086fe55b47648482b2767679a49d7e316f45c49ab3187fade40a6d2f1b8fe5d93fefacc0d6ef0b6bfd16
6
+ metadata.gz: f97680fe4d6bf056bf841d666b5ebb9ccc98b44b4b3df06d3fe62932a16f8e051a370869c3d1a5aeaf76abe1ce59d992839674949ae1748e4774614f54b7d3f5
7
+ data.tar.gz: 229d6b4ad97a47fe100126c7f4eba638cee4cf6b4b4469c45f5c8d62fc194bf168904ac0556510916de2815eb221c9b247d882a0838907c961f33f491fdd9875
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Files
5
- VERSION = '0.5.0'
5
+ VERSION = '0.6.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-files
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.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-10-20 00:00:00.000000000 Z
11
+ date: 2022-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.51'
19
+ version: '0.52'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.51'
26
+ version: '0.52'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: eac_cli
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.105'
67
+ version: '0.106'
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0.105'
74
+ version: '0.106'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: eac_templates
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -121,8 +121,6 @@ files:
121
121
  - lib/avm/files/appendable/templatized_directory.rb
122
122
  - lib/avm/files/appender.rb
123
123
  - lib/avm/files/deploy.rb
124
- - lib/avm/files/formatter.rb
125
- - lib/avm/files/formatter/utf8_assert.rb
126
124
  - lib/avm/files/runner_with.rb
127
125
  - lib/avm/files/runner_with/file_replacer.rb
128
126
  - lib/avm/files/runner_with/filesystem_traverser.rb
@@ -1,74 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_fs/file_info'
4
-
5
- module Avm
6
- module Files
7
- class Formatter
8
- class Utf8Assert
9
- UTF8_CHARSET = 'utf-8'
10
- UTF8_CHARSETS = [UTF8_CHARSET, 'us-ascii'].freeze
11
-
12
- class << self
13
- def assert_files(files)
14
- asserters = files.map { |file| new(file) }
15
- begin
16
- asserters.each(&:assert)
17
- yield
18
- ensure
19
- asserters.each(&:revert)
20
- end
21
- end
22
- end
23
-
24
- enable_simple_cache
25
- common_constructor :path
26
-
27
- def assert
28
- return if original_utf8?
29
-
30
- convert_self(original_charset, UTF8_CHARSET)
31
- end
32
-
33
- def revert
34
- return if original_utf8?
35
-
36
- convert_self(UTF8_CHARSET, original_charset)
37
- end
38
-
39
- private
40
-
41
- def original_info_uncached
42
- ::EacFs::FileInfo.new(path)
43
- end
44
-
45
- def original_charset_uncached
46
- return original_info.content_type.charset if original_info.content_type.charset.present?
47
-
48
- raise 'No charset found'
49
- rescue StandardError => e
50
- raise "Unable to determine the charset of #{path} (#{e.message})"
51
- end
52
-
53
- def original_utf8?
54
- UTF8_CHARSETS.include?(original_charset)
55
- end
56
-
57
- def convert_file(from_path, from_charset, to_path, to_charset)
58
- File.open(from_path, "r:#{from_charset}") do |input|
59
- File.open(to_path, "w:#{to_charset}") do |output|
60
- output.write(input.read)
61
- end
62
- end
63
- end
64
-
65
- def convert_self(from_charset, to_charset)
66
- temp = ::Tempfile.new
67
- temp.close
68
- convert_file(path, from_charset, temp.path, to_charset)
69
- ::FileUtils.mv(temp.path, path)
70
- end
71
- end
72
- end
73
- end
74
- end
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/registry'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'eac_fs/traversable'
6
-
7
- module Avm
8
- module Files
9
- class Formatter
10
- include ::EacFs::Traversable
11
- require_sub __FILE__
12
- enable_simple_cache
13
- enable_speaker
14
- enable_listable
15
- lists.add_symbol :option, :apply, :recursive, :verbose
16
- common_constructor :source_paths, :options, default: [{}] do
17
- options.assert_valid_keys(self.class.lists.option.values)
18
- end
19
-
20
- def run
21
- clear
22
- search_files
23
- apply
24
- show_results
25
- end
26
-
27
- private
28
-
29
- def apply
30
- infom "Applying #{@formats_files.count} format(s)... "
31
- @formats_files.each do |format, files|
32
- infom "Applying format #{format.name} (Files matched: #{files.count})..."
33
- next unless options[OPTION_APPLY]
34
-
35
- @result += format.apply(files)
36
- end
37
- end
38
-
39
- def traverser_check_file(file)
40
- format = find_format(file)
41
- infov file, format ? format.class : '-' if options[OPTION_VERBOSE]
42
- return unless format
43
-
44
- @formats_files[format] ||= []
45
- @formats_files[format] << file
46
- end
47
-
48
- def clear
49
- @formats_files = {}
50
- @result = []
51
- end
52
-
53
- def find_format(file)
54
- formats.each do |c|
55
- return c if c.match?(file)
56
- end
57
- nil
58
- end
59
-
60
- def formats_uncached
61
- formats_from_registry
62
- end
63
-
64
- def formats_from_registry
65
- ::Avm::Registry.file_formats.available.reverse.map(&:new)
66
- end
67
-
68
- def search_files
69
- infov 'Directories to search', source_paths.count
70
- source_paths.each do |source_path|
71
- infom "Searching files on \"#{source_path}\"..."
72
- traverser_check_path(source_path)
73
- end
74
- end
75
-
76
- def show_results
77
- changed = @result.select(&:changed)
78
- changed.each do |h|
79
- out h.file.to_s.cyan
80
- out " (#{h.format})".yellow
81
- puts ' changed'.green
82
- end
83
- infov('Files changed', "#{changed.count}/#{@result.count}")
84
- end
85
-
86
- def traverser_recursive
87
- options[OPTION_RECURSIVE]
88
- end
89
- end
90
- end
91
- end