avm-eac_generic_base0 0.10.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: f161c6b43c6dfd170d9c2357ad0111a915d728ddd2ffc57924bd3f5a00da661d
4
- data.tar.gz: 3085232838767992e1edf61dfbb657bfda8257a92e7ed5a18a3a25852ee2639b
3
+ metadata.gz: 52b3ab34dc0241621126b4d39b3042e8500de71500aef13d27e2711637acfffa
4
+ data.tar.gz: abc4522bae16323e3b47e682176e888a059d5fc943296b843a946c0b1b6562ef
5
5
  SHA512:
6
- metadata.gz: bc015d05f4c387240938ec8c765fd2877fb265992bd1f64c0374c1eb61e05360561fe8b38f320392200d92ce3fd560d97a8f566bf3a27cb5f9e9c8cdd734ae83
7
- data.tar.gz: b5904ee9368eae601dc5c423e7adb83fe70174fdca000e5f331a115db3ebede3b187fdfe48dae6af90c54edcbf0950184fe30be73df6e18625cb6559f8055d31
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
@@ -18,6 +18,12 @@ module Avm
18
18
  files.each { |file| file_apply(file) }
19
19
  end
20
20
 
21
+ # @param file [Pathname]
22
+ # @return [Boolean]
23
+ def match?(file)
24
+ ::Avm::EacGenericBase0::FileFormats::Base::Match.new(self, file).result || !file.exist?
25
+ end
26
+
21
27
  def file_apply(file)
22
28
  file.write(string_apply(file.read))
23
29
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacGenericBase0
5
- VERSION = '0.10.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.10.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-01-19 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,34 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.61'
19
+ version: '0.66'
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.61'
26
+ version: '0.66'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: eac_ruby_utils
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.110'
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: 0.110.1
33
+ version: '0.112'
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - "~>"
42
39
  - !ruby/object:Gem::Version
43
- version: '0.110'
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 0.110.1
40
+ version: '0.112'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: eac_ruby_gem_support
49
43
  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