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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52b3ab34dc0241621126b4d39b3042e8500de71500aef13d27e2711637acfffa
|
4
|
+
data.tar.gz: abc4522bae16323e3b47e682176e888a059d5fc943296b843a946c0b1b6562ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
24
|
+
::Avm::EacGenericBase0::FileFormats::Base::Match.new(self, file).result || !file.exist?
|
25
25
|
end
|
26
26
|
|
27
27
|
def file_apply(file)
|
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.
|
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-
|
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.
|
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.
|
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
|