avm-eac_generic_base0 0.11.0 → 0.12.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: 6d867ff58ba7add2ff4d086f2850c82ddb0675a89682624573f1c52579fba85c
4
- data.tar.gz: 9d2f720d4c374df028fb38c5fc73d63a89813b91b304f5cd2cc5aa46e24e4d2e
3
+ metadata.gz: 52b3ab34dc0241621126b4d39b3042e8500de71500aef13d27e2711637acfffa
4
+ data.tar.gz: abc4522bae16323e3b47e682176e888a059d5fc943296b843a946c0b1b6562ef
5
5
  SHA512:
6
- metadata.gz: 4bae69d45de313bc838dec9bbca744f4efa04835db560c8d317dfc4b40c06d7e22c29e84a99fa11f0266ed77bcbaa762788ea97cb9cc6766e5d7e24a537cf2d1
7
- data.tar.gz: '092403263b87464547ebcc611dc094b9471e06cf32a18cc0fea9cb1bd17ebbe7b7c89e9801470447cbf61fbf2eba047314e3ec6326235eadc8b337ff912b6925'
6
+ metadata.gz: 425fd06ce4129743007f189305ccc8c7bbcdd325bcc0f48b4d6e2a8b76db824a64fe2293a1d6495e9d43258e1aa9aae51e14f34210e5b93d74811314b6b06475
7
+ data.tar.gz: 5221337d6d839744488db73575822d17f176ccb646e24d0611c8c11176f1ce8a98a868f6be02ceae41f9460249beb3711a997a8211fe7e0b26f7182dc709b475
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/file_formats/base'
4
+ require 'avm/file_formats/file_result'
5
+ require 'avm/file_formats/utf8_assert'
6
+ require 'eac_ruby_utils/core_ext'
7
+
8
+ module Avm
9
+ module EacGenericBase0
10
+ class FileFormats
11
+ class Base < ::Avm::FileFormats::Base
12
+ class Apply
13
+ enable_method_class
14
+ common_constructor :file_format, :files
15
+
16
+ # @return [Enumerable<Avm::FileFormats::FileResult>]
17
+ def result
18
+ old_content = Hash[files.map { |f| [f, File.read(f)] }]
19
+ ::Avm::FileFormats::Utf8Assert.assert_files(files) { file_format.internal_apply(files) }
20
+ files.map { |f| file_result(f, old_content[f]) }
21
+ end
22
+
23
+ # @param path [Pathname]
24
+ # @param old_content [String]
25
+ # @return [Avm::FileFormats::FileResult]
26
+ def file_result(file, old_content)
27
+ ::Avm::FileFormats::FileResult.new(file, file_format.class,
28
+ old_content != File.read(file))
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/file_formats/base'
4
+ require 'eac_fs/file_info'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avm
8
+ module EacGenericBase0
9
+ class FileFormats
10
+ class Base < ::Avm::FileFormats::Base
11
+ class Match
12
+ DEFAULT_TYPE = 'text'
13
+
14
+ common_constructor :file_format, :file
15
+
16
+ # @return [Boolean]
17
+ def result
18
+ result_by_filename? || result_by_type?
19
+ end
20
+
21
+ # @return [Array<String>]
22
+ def valid_basenames
23
+ constant_or_array('VALID_BASENAMES')
24
+ end
25
+
26
+ # @return [Array<String>]
27
+ def valid_types
28
+ constant_or_array('VALID_TYPES').map do |mime_type|
29
+ mime_type_sanitize(mime_type)
30
+ end
31
+ end
32
+
33
+ protected
34
+
35
+ # @return [String]
36
+ def mime_type_sanitize(mime_type)
37
+ if mime_type.split('/').count > 1
38
+ mime_type
39
+ else
40
+ "#{DEFAULT_TYPE}/#{mime_type}"
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ # @return [Array<String>]
47
+ def constant_or_array(name)
48
+ return [] unless file_format.class.const_defined?(name)
49
+
50
+ file_format.class.const_get(name)
51
+ end
52
+
53
+ # @return [Boolean]
54
+ def result_by_filename?
55
+ valid_basenames.any? do |valid_basename|
56
+ file.basename.fnmatch?(valid_basename)
57
+ end
58
+ end
59
+
60
+ # @return [Boolean]
61
+ def result_by_type?
62
+ info = ::EacFs::FileInfo.new(file)
63
+ valid_types.include?(info.content_type.mime_type)
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -7,7 +7,7 @@ module Avm
7
7
  module EacGenericBase0
8
8
  class FileFormats
9
9
  class Base < ::Avm::FileFormats::Base
10
- require_sub __FILE__, include_modules: true
10
+ require_sub __FILE__, include_modules: true, require_dependency: true
11
11
 
12
12
  VALID_BASENAMES = %w[*.asm *.bat *.coffee *.java *.js *.rb *.s *.sql *.tex *.url *.yml
13
13
  *.yaml].freeze
@@ -21,7 +21,7 @@ module Avm
21
21
  # @param file [Pathname]
22
22
  # @return [Boolean]
23
23
  def match?(file)
24
- super(file) || !file.exist?
24
+ ::Avm::EacGenericBase0::FileFormats::Base::Match.new(self, file).result || !file.exist?
25
25
  end
26
26
 
27
27
  def file_apply(file)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacGenericBase0
5
- VERSION = '0.11.0'
5
+ VERSION = '0.12.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_generic_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.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: 2023-03-28 00:00:00.000000000 Z
11
+ date: 2023-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,20 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.64'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.64.1
19
+ version: '0.66'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0.64'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 0.64.1
26
+ version: '0.66'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: eac_ruby_utils
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +61,9 @@ files:
67
61
  - lib/avm/eac_generic_base0.rb
68
62
  - lib/avm/eac_generic_base0/file_formats.rb
69
63
  - lib/avm/eac_generic_base0/file_formats/base.rb
64
+ - lib/avm/eac_generic_base0/file_formats/base/apply.rb
70
65
  - lib/avm/eac_generic_base0/file_formats/base/file_resource_name_helper.rb
66
+ - lib/avm/eac_generic_base0/file_formats/base/match.rb
71
67
  - lib/avm/eac_generic_base0/instances.rb
72
68
  - lib/avm/eac_generic_base0/instances/base.rb
73
69
  - lib/avm/eac_generic_base0/sources.rb