avm-eac_generic_base0 0.11.0 → 0.12.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: 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