avm-eac_generic_base0 0.11.0 → 0.12.1

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: 6b9ee40faeb694c434d6182796e8c4edbece64448b7104c709de6bbb8016978c
4
+ data.tar.gz: 810006ed5866e7e0c477004aedb7a81aeff7c65ec86e9f527e5c0ba438343ef1
5
5
  SHA512:
6
- metadata.gz: 4bae69d45de313bc838dec9bbca744f4efa04835db560c8d317dfc4b40c06d7e22c29e84a99fa11f0266ed77bcbaa762788ea97cb9cc6766e5d7e24a537cf2d1
7
- data.tar.gz: '092403263b87464547ebcc611dc094b9471e06cf32a18cc0fea9cb1bd17ebbe7b7c89e9801470447cbf61fbf2eba047314e3ec6326235eadc8b337ff912b6925'
6
+ metadata.gz: 9060308c89ad3d5b95929cbaa393b8169dedffa6f43e56d78a3f4644f347d0fa26ebd5d9816a212744ea5b33c4a60d865a4476cb05b0e4ec7f4ca38013d34386
7
+ data.tar.gz: e9873c5af15a4a21e0b8e7f08b50a658c5fbe995b1d83ab56a0f2bd6c72f83c2c87830005c45217e220984bdc2d4fc3a37144f01497051e5498bb4c1ae009ec8
@@ -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 = files.index_with { |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
@@ -7,9 +7,9 @@ module Avm
7
7
  class FileFormats
8
8
  class Base < ::Avm::FileFormats::Base
9
9
  module FileResourceNameHelper
10
- def result_from_patterns(patterns, path)
10
+ def result_from_patterns(patterns, path, &block)
11
11
  patterns.lazy.map { |pattern| pattern.to_parser.parse(path.to_path) }
12
- .find(&:present?).if_present { |v| yield(v) }
12
+ .find(&:present?).if_present(&block)
13
13
  end
14
14
 
15
15
  def result_from_superclass(path)
@@ -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)
@@ -33,7 +33,7 @@ module Avm
33
33
  string.each_line do |line|
34
34
  b += "#{line.rstrip}\n"
35
35
  end
36
- "#{b.strip}\n".gsub(/\t/, ' ')
36
+ "#{b.strip}\n".gsub("\t", ' ')
37
37
  end
38
38
  end
39
39
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacGenericBase0
5
- VERSION = '0.11.0'
5
+ VERSION = '0.12.1'
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.1
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-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,48 +16,48 @@ 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.79'
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.79'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: eac_ruby_utils
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '0.112'
33
+ version: '0.119'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.119.2
40
37
  type: :runtime
41
38
  prerelease: false
42
39
  version_requirements: !ruby/object:Gem::Requirement
43
40
  requirements:
44
41
  - - "~>"
45
42
  - !ruby/object:Gem::Version
46
- version: '0.112'
43
+ version: '0.119'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.119.2
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: eac_ruby_gem_support
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: 0.5.1
53
+ version: 0.8.1
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: 0.5.1
60
+ version: 0.8.1
61
61
  description:
62
62
  email:
63
63
  executables: []
@@ -67,7 +67,9 @@ files:
67
67
  - lib/avm/eac_generic_base0.rb
68
68
  - lib/avm/eac_generic_base0/file_formats.rb
69
69
  - lib/avm/eac_generic_base0/file_formats/base.rb
70
+ - lib/avm/eac_generic_base0/file_formats/base/apply.rb
70
71
  - lib/avm/eac_generic_base0/file_formats/base/file_resource_name_helper.rb
72
+ - lib/avm/eac_generic_base0/file_formats/base/match.rb
71
73
  - lib/avm/eac_generic_base0/instances.rb
72
74
  - lib/avm/eac_generic_base0/instances/base.rb
73
75
  - lib/avm/eac_generic_base0/sources.rb
@@ -88,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
90
  requirements:
89
91
  - - ">="
90
92
  - !ruby/object:Gem::Version
91
- version: '0'
93
+ version: 2.7.0
92
94
  required_rubygems_version: !ruby/object:Gem::Requirement
93
95
  requirements:
94
96
  - - ">="