libis-format 1.0.5 → 2.0.3
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 +4 -4
- data/.gitignore +5 -1
- data/.travis.yml +32 -24
- data/README.md +2 -2
- data/base/Dockerfile +24 -2
- data/base/Dockerfile.alpine +20 -0
- data/base/Dockerfile.rvm +56 -0
- data/base/rework_path +20 -0
- data/docker_cfg.yml +1 -0
- data/lib/libis/format.rb +12 -3
- data/lib/libis/format/cli/convert.rb +4 -4
- data/lib/libis/format/config.rb +16 -12
- data/lib/libis/format/converter/audio_converter.rb +2 -36
- data/lib/libis/format/converter/base.rb +22 -8
- data/lib/libis/format/converter/chain.rb +3 -3
- data/lib/libis/format/converter/image_assembler.rb +82 -0
- data/lib/libis/format/converter/image_converter.rb +20 -138
- data/lib/libis/format/converter/image_splitter.rb +84 -0
- data/lib/libis/format/converter/image_watermarker.rb +261 -0
- data/lib/libis/format/converter/jp2_converter.rb +1 -1
- data/lib/libis/format/converter/office_converter.rb +2 -2
- data/lib/libis/format/converter/pdf_assembler.rb +66 -0
- data/lib/libis/format/converter/pdf_converter.rb +6 -132
- data/lib/libis/format/converter/pdf_metadata.rb +82 -0
- data/lib/libis/format/converter/pdf_optimizer.rb +67 -0
- data/lib/libis/format/converter/pdf_protecter.rb +147 -0
- data/lib/libis/format/converter/pdf_selecter.rb +83 -0
- data/lib/libis/format/converter/pdf_splitter.rb +70 -0
- data/lib/libis/format/converter/pdf_watermarker_header.rb +71 -0
- data/lib/libis/format/converter/pdf_watermarker_image.rb +76 -0
- data/lib/libis/format/converter/pdf_watermarker_text.rb +93 -0
- data/lib/libis/format/converter/spreadsheet_converter.rb +2 -2
- data/lib/libis/format/converter/video_converter.rb +1 -1
- data/lib/libis/format/identifier.rb +3 -3
- data/lib/libis/format/info.rb +27 -0
- data/lib/libis/format/library.rb +147 -0
- data/lib/libis/format/tool.rb +4 -1
- data/lib/libis/format/tool/extension_identification.rb +4 -4
- data/lib/libis/format/tool/identification_tool.rb +6 -6
- data/lib/libis/format/tool/pdf_merge.rb +3 -3
- data/lib/libis/format/tool/{pdf_copy.rb → pdf_metadata.rb} +5 -5
- data/lib/libis/format/tool/pdf_protect.rb +47 -0
- data/lib/libis/format/tool/pdf_select.rb +47 -0
- data/lib/libis/format/tool/pdf_split.rb +4 -4
- data/lib/libis/format/tool/pdf_watermark.rb +47 -0
- data/lib/libis/format/tool/spreadsheet_to_ods.rb +1 -0
- data/lib/libis/format/version.rb +1 -1
- data/lib/libis/format/yaml_loader.rb +71 -0
- data/libis-format.gemspec +3 -2
- data/tools/PdfTool.jar +0 -0
- data/tools/bcpkix-jdk15on-167.jar +0 -0
- data/tools/bcprov-jdk15on-167.jar +0 -0
- metadata +32 -13
- data/lib/libis/format/type_database.rb +0 -134
- data/lib/libis/format/type_database_impl.rb +0 -120
- data/tools/bcpkix-jdk15on-1.49.jar +0 -0
- data/tools/bcprov-jdk15on-1.49.jar +0 -0
data/lib/libis/format/version.rb
CHANGED
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'yaml'
|
3
|
+
require 'singleton'
|
4
|
+
|
5
|
+
module Libis
|
6
|
+
module Format
|
7
|
+
class YamlLoader
|
8
|
+
# noinspection RubyResolve
|
9
|
+
include Singleton
|
10
|
+
|
11
|
+
def query(key, value)
|
12
|
+
case key.to_s.downcase.to_sym
|
13
|
+
when :name
|
14
|
+
return [database[value.to_s.upcase.to_sym]]
|
15
|
+
when :category
|
16
|
+
database.find_all { |_, info| info.category == value.to_s.upcase.to_sym }
|
17
|
+
when :puid
|
18
|
+
database.find_all { |_, info| info.puids.include?(value) }
|
19
|
+
when :mimetype
|
20
|
+
database.find_all { |_, info| info.mimetypes.include?(value) }
|
21
|
+
when :extension
|
22
|
+
database.find_all { |_, info| info.extensions.include?(value) }
|
23
|
+
else
|
24
|
+
return []
|
25
|
+
end.map(&:last)
|
26
|
+
end
|
27
|
+
|
28
|
+
def load_formats(file_or_hash)
|
29
|
+
hash = file_or_hash.is_a?(Hash) ? file_or_hash : YAML::load_file(file_or_hash)
|
30
|
+
hash.each do |category, format_list|
|
31
|
+
format_list.each do |format_name, format_info|
|
32
|
+
format_info.symbolize_keys!
|
33
|
+
format_name = format_name.to_sym
|
34
|
+
new_info = Libis::Format::Info.new(
|
35
|
+
name: format_name,
|
36
|
+
category: category.to_sym,
|
37
|
+
description: format_info[:NAME],
|
38
|
+
puids: format_info[:PUID]&.strip&.split(/[\s,]+/)&.map { |v| v.strip } || [],
|
39
|
+
mimetypes: format_info[:MIME]&.strip&.split(/[\s,]+/)&.map(&:strip) || [],
|
40
|
+
extensions: format_info[:EXTENSIONS]&.strip&.split(/[\s,]+/)&.map { |v| v.strip } || []
|
41
|
+
)
|
42
|
+
if (old_info = database[format_name])
|
43
|
+
new_info = Libis::Format::Info.new(
|
44
|
+
name: format_name,
|
45
|
+
category: category.to_sym,
|
46
|
+
description: new_info.description.blank? ? old_info.description : new_info.description,
|
47
|
+
puids: (old_info.puids + new_info.puids).uniq,
|
48
|
+
mimetypes: (old_info.mimetypes + new_info.mimetypes).uniq,
|
49
|
+
extensions: (old_info.extensions + new_info.extensions).uniq
|
50
|
+
)
|
51
|
+
end
|
52
|
+
database[format_name] = new_info
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
attr_reader :database
|
61
|
+
|
62
|
+
def initialize
|
63
|
+
@database = {}
|
64
|
+
format_database = Libis::Format::Config[:format_library_database]
|
65
|
+
load_formats(format_database)
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
data/libis-format.gemspec
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
lib = File.expand_path('../lib', __FILE__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
|
6
|
+
require 'bundler'
|
6
7
|
require 'libis/format/version'
|
7
8
|
|
8
9
|
Gem::Specification.new do |spec|
|
@@ -32,10 +33,10 @@ Gem::Specification.new do |spec|
|
|
32
33
|
spec.add_development_dependency 'nokogiri'
|
33
34
|
end
|
34
35
|
|
35
|
-
spec.add_runtime_dependency 'libis-tools', '
|
36
|
+
spec.add_runtime_dependency 'libis-tools', '>= 1.0.9'
|
36
37
|
spec.add_runtime_dependency 'os', '= 0.9.6'
|
37
38
|
spec.add_runtime_dependency 'mini_magick', '~> 4.3'
|
38
39
|
spec.add_runtime_dependency 'deep_dive', '~> 0.3'
|
39
40
|
spec.add_runtime_dependency 'chromaprint', '~> 0.0.2'
|
40
41
|
spec.add_runtime_dependency 'naturally', '~> 2.1'
|
41
|
-
end
|
42
|
+
end
|
data/tools/PdfTool.jar
CHANGED
Binary file
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libis-format
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kris Dekeyser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: libis-tools
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 1.0.9
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 1.0.9
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: os
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -185,6 +185,9 @@ files:
|
|
185
185
|
- README.md
|
186
186
|
- Rakefile
|
187
187
|
- base/Dockerfile
|
188
|
+
- base/Dockerfile.alpine
|
189
|
+
- base/Dockerfile.rvm
|
190
|
+
- base/rework_path
|
188
191
|
- bin/droid
|
189
192
|
- bin/fido
|
190
193
|
- bin/formatinfo
|
@@ -197,6 +200,7 @@ files:
|
|
197
200
|
- data/lias_formats.xml
|
198
201
|
- data/types.yml
|
199
202
|
- data/xlink.xsd
|
203
|
+
- docker_cfg.yml
|
200
204
|
- lib/libis-format.rb
|
201
205
|
- lib/libis/format.rb
|
202
206
|
- lib/libis/format/cli/convert.rb
|
@@ -210,15 +214,29 @@ files:
|
|
210
214
|
- lib/libis/format/converter/base.rb
|
211
215
|
- lib/libis/format/converter/chain.rb
|
212
216
|
- lib/libis/format/converter/fop_pdf_converter.rb
|
217
|
+
- lib/libis/format/converter/image_assembler.rb
|
213
218
|
- lib/libis/format/converter/image_converter.rb
|
219
|
+
- lib/libis/format/converter/image_splitter.rb
|
220
|
+
- lib/libis/format/converter/image_watermarker.rb
|
214
221
|
- lib/libis/format/converter/jp2_converter.rb
|
215
222
|
- lib/libis/format/converter/office_converter.rb
|
223
|
+
- lib/libis/format/converter/pdf_assembler.rb
|
216
224
|
- lib/libis/format/converter/pdf_converter.rb
|
225
|
+
- lib/libis/format/converter/pdf_metadata.rb
|
226
|
+
- lib/libis/format/converter/pdf_optimizer.rb
|
227
|
+
- lib/libis/format/converter/pdf_protecter.rb
|
228
|
+
- lib/libis/format/converter/pdf_selecter.rb
|
229
|
+
- lib/libis/format/converter/pdf_splitter.rb
|
230
|
+
- lib/libis/format/converter/pdf_watermarker_header.rb
|
231
|
+
- lib/libis/format/converter/pdf_watermarker_image.rb
|
232
|
+
- lib/libis/format/converter/pdf_watermarker_text.rb
|
217
233
|
- lib/libis/format/converter/repository.rb
|
218
234
|
- lib/libis/format/converter/spreadsheet_converter.rb
|
219
235
|
- lib/libis/format/converter/video_converter.rb
|
220
236
|
- lib/libis/format/converter/xslt_converter.rb
|
221
237
|
- lib/libis/format/identifier.rb
|
238
|
+
- lib/libis/format/info.rb
|
239
|
+
- lib/libis/format/library.rb
|
222
240
|
- lib/libis/format/tool.rb
|
223
241
|
- lib/libis/format/tool/droid.rb
|
224
242
|
- lib/libis/format/tool/extension_identification.rb
|
@@ -228,20 +246,22 @@ files:
|
|
228
246
|
- lib/libis/format/tool/fop_pdf.rb
|
229
247
|
- lib/libis/format/tool/identification_tool.rb
|
230
248
|
- lib/libis/format/tool/office_to_pdf.rb
|
231
|
-
- lib/libis/format/tool/pdf_copy.rb
|
232
249
|
- lib/libis/format/tool/pdf_merge.rb
|
250
|
+
- lib/libis/format/tool/pdf_metadata.rb
|
233
251
|
- lib/libis/format/tool/pdf_optimizer.rb
|
252
|
+
- lib/libis/format/tool/pdf_protect.rb
|
253
|
+
- lib/libis/format/tool/pdf_select.rb
|
234
254
|
- lib/libis/format/tool/pdf_split.rb
|
235
255
|
- lib/libis/format/tool/pdf_to_pdfa.rb
|
256
|
+
- lib/libis/format/tool/pdf_watermark.rb
|
236
257
|
- lib/libis/format/tool/pdfa_validator.rb
|
237
258
|
- lib/libis/format/tool/spreadsheet_to_ods.rb
|
238
|
-
- lib/libis/format/type_database.rb
|
239
|
-
- lib/libis/format/type_database_impl.rb
|
240
259
|
- lib/libis/format/version.rb
|
260
|
+
- lib/libis/format/yaml_loader.rb
|
241
261
|
- libis-format.gemspec
|
242
262
|
- tools/PdfTool.jar
|
243
|
-
- tools/bcpkix-jdk15on-
|
244
|
-
- tools/bcprov-jdk15on-
|
263
|
+
- tools/bcpkix-jdk15on-167.jar
|
264
|
+
- tools/bcprov-jdk15on-167.jar
|
245
265
|
- tools/fop/build/fop.jar
|
246
266
|
- tools/fop/conf/fop.xconf
|
247
267
|
- tools/fop/fop
|
@@ -313,8 +333,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
313
333
|
- !ruby/object:Gem::Version
|
314
334
|
version: '0'
|
315
335
|
requirements: []
|
316
|
-
|
317
|
-
rubygems_version: 2.7.6
|
336
|
+
rubygems_version: 3.1.4
|
318
337
|
signing_key:
|
319
338
|
specification_version: 4
|
320
339
|
summary: LIBIS File format format services.
|
@@ -1,134 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'yaml'
|
4
|
-
|
5
|
-
require 'backports/rails/hash'
|
6
|
-
|
7
|
-
module Libis
|
8
|
-
module Format
|
9
|
-
|
10
|
-
# noinspection RubyClassVariableUsageInspection
|
11
|
-
class TypeDatabase
|
12
|
-
@implementation = Libis::Format::TypeDatabaseImpl.instance
|
13
|
-
|
14
|
-
def self.implementation(impl)
|
15
|
-
@implementation = impl
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.enrich(info, map_keys = {})
|
19
|
-
return {} unless info.is_a? Hash
|
20
|
-
mapper = Hash.new {|hash,key| hash[key] = key}
|
21
|
-
mapper.merge! map_keys
|
22
|
-
unless (puid = info[mapper[:PUID]]).blank?
|
23
|
-
info[mapper[:TYPE]] ||= puid_infos(puid).first[:TYPE] rescue nil
|
24
|
-
end
|
25
|
-
unless (mime = info[mapper[:MIME]]).blank?
|
26
|
-
info[mapper[:TYPE]] ||= mime_infos(mime).first[:TYPE] rescue nil
|
27
|
-
end
|
28
|
-
unless (type_name = info[mapper[:TYPE]]).nil?
|
29
|
-
mapper.keys.each do |key|
|
30
|
-
info[mapper[key]] = get(type_name, key) || info[mapper[key]]
|
31
|
-
end
|
32
|
-
info[mapper[:GROUP]] = type_group(type_name)
|
33
|
-
end
|
34
|
-
info
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.normalize(info, map_keys = {})
|
38
|
-
return {} unless info.is_a? Hash
|
39
|
-
mapper = Hash.new {|hash,key| hash[key] = key}
|
40
|
-
mapper.merge! map_keys
|
41
|
-
unless (puid = info[mapper[:PUID]]).blank?
|
42
|
-
info[mapper[:TYPE]] ||= puid_infos(puid).first[:TYPE] rescue nil
|
43
|
-
end
|
44
|
-
unless (mime = info[mapper[:MIME]]).blank?
|
45
|
-
info[mapper[:TYPE]] ||= mime_infos(mime).first[:TYPE] rescue nil
|
46
|
-
end
|
47
|
-
unless (type_name = info[mapper[:TYPE]]).nil?
|
48
|
-
info[mapper[:MIME]] = type_mimetypes(type_name).first if type_mimetypes(type_name).first
|
49
|
-
info[mapper[:GROUP]] = type_group(type_name)
|
50
|
-
end
|
51
|
-
info
|
52
|
-
end
|
53
|
-
|
54
|
-
def self.get(type_name, key)
|
55
|
-
case key
|
56
|
-
when :MIME
|
57
|
-
type_mimetypes(type_name).first
|
58
|
-
when :PUID
|
59
|
-
type_puids(type_name).first
|
60
|
-
when :EXTENSION
|
61
|
-
type_extentions(type_name).first
|
62
|
-
else
|
63
|
-
typeinfo(type_name)[key]
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def self.type_group(t)
|
68
|
-
typeinfo(t)[:GROUP]
|
69
|
-
end
|
70
|
-
|
71
|
-
def self.type_mimetypes(t)
|
72
|
-
typeinfo(t)[:MIME] || []
|
73
|
-
end
|
74
|
-
|
75
|
-
def self.type_puids(t)
|
76
|
-
typeinfo(t)[:PUID] || []
|
77
|
-
end
|
78
|
-
|
79
|
-
def self.type_extentions(t)
|
80
|
-
typeinfo(t)[:EXTENSIONS] || []
|
81
|
-
end
|
82
|
-
|
83
|
-
def self.typeinfo(t)
|
84
|
-
@implementation.typeinfo(t)
|
85
|
-
end
|
86
|
-
|
87
|
-
def self.group_types(group)
|
88
|
-
@implementation.group_types(group)
|
89
|
-
end
|
90
|
-
|
91
|
-
def self.puid_infos(puid)
|
92
|
-
@implementation.puid_infos(puid)
|
93
|
-
end
|
94
|
-
|
95
|
-
def self.puid_types(puid)
|
96
|
-
@implementation.puid_types(puid)
|
97
|
-
end
|
98
|
-
|
99
|
-
def self.puid_groups(puid)
|
100
|
-
puid_types(puid).map(&method(:type_group))
|
101
|
-
end
|
102
|
-
|
103
|
-
def self.mime_infos(mime)
|
104
|
-
@implementation.mime_infos(mime)
|
105
|
-
end
|
106
|
-
|
107
|
-
def self.mime_types(mime)
|
108
|
-
@implementation.mime_types(mime)
|
109
|
-
end
|
110
|
-
|
111
|
-
def self.mime_groups(mime)
|
112
|
-
mime_types(mime).map(&method(:type_group))
|
113
|
-
end
|
114
|
-
|
115
|
-
def self.ext_infos(ext)
|
116
|
-
@implementation.ext_infos(ext)
|
117
|
-
end
|
118
|
-
|
119
|
-
def self.ext_types(ext)
|
120
|
-
@implementation.ext_types(ext)
|
121
|
-
end
|
122
|
-
|
123
|
-
def self.puid_typeinfo(puid)
|
124
|
-
@implementation.puid_typeinfo(puid)
|
125
|
-
end
|
126
|
-
|
127
|
-
def self.known_mime?(mime)
|
128
|
-
@implementation.known_mime?(mime)
|
129
|
-
end
|
130
|
-
|
131
|
-
end
|
132
|
-
|
133
|
-
end
|
134
|
-
end
|
@@ -1,120 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'singleton'
|
4
|
-
require 'yaml'
|
5
|
-
|
6
|
-
require 'backports/rails/hash'
|
7
|
-
require 'libis/tools/logger'
|
8
|
-
require 'libis/tools/extend/string'
|
9
|
-
|
10
|
-
module Libis
|
11
|
-
module Format
|
12
|
-
|
13
|
-
class TypeDatabaseImpl
|
14
|
-
include Singleton
|
15
|
-
include ::Libis::Tools::Logger
|
16
|
-
|
17
|
-
def typeinfo(t)
|
18
|
-
@types[t.to_sym] || {}
|
19
|
-
end
|
20
|
-
|
21
|
-
def group_types(group)
|
22
|
-
@types.select do |_, v|
|
23
|
-
v[:GROUP] == group.to_sym
|
24
|
-
end.keys
|
25
|
-
end
|
26
|
-
|
27
|
-
def puid_infos(puid)
|
28
|
-
@types.select do |_, v|
|
29
|
-
v[:PUID].include? puid rescue false
|
30
|
-
end.values
|
31
|
-
end
|
32
|
-
|
33
|
-
def puid_types(puid)
|
34
|
-
@types.select do |_, v|
|
35
|
-
v[:PUID].include? puid rescue false
|
36
|
-
end.keys
|
37
|
-
end
|
38
|
-
|
39
|
-
def mime_infos(mime)
|
40
|
-
@types.select do |_, v|
|
41
|
-
v[:MIME].include? mime rescue false
|
42
|
-
end.values
|
43
|
-
end
|
44
|
-
|
45
|
-
def mime_types(mime)
|
46
|
-
@types.select do |_, v|
|
47
|
-
v[:MIME].include? mime rescue false
|
48
|
-
end.keys
|
49
|
-
end
|
50
|
-
|
51
|
-
def ext_infos(ext)
|
52
|
-
ext = ext.gsub /^\./, ''
|
53
|
-
@types.select do |_, v|
|
54
|
-
v[:EXTENSIONS].include?(ext) rescue false
|
55
|
-
end.values
|
56
|
-
end
|
57
|
-
|
58
|
-
def ext_types(ext)
|
59
|
-
ext = ext.gsub /^\./, ''
|
60
|
-
@types.select do |_, v|
|
61
|
-
v[:EXTENSIONS].include?(ext) rescue false
|
62
|
-
end.keys
|
63
|
-
end
|
64
|
-
|
65
|
-
def puid_typeinfo(puid)
|
66
|
-
@types.each do |_, v|
|
67
|
-
return v if v[:PUID] and v[:PUID].include?(puid)
|
68
|
-
end
|
69
|
-
nil
|
70
|
-
end
|
71
|
-
|
72
|
-
def known_mime?(mime)
|
73
|
-
@types.each do |_, v|
|
74
|
-
return true if v[:MIME].include? mime
|
75
|
-
end
|
76
|
-
false
|
77
|
-
end
|
78
|
-
|
79
|
-
def load_types(file_or_hash = {}, append = true)
|
80
|
-
hash = file_or_hash.is_a?(Hash) ? file_or_hash : YAML::load_file(file_or_hash)
|
81
|
-
# noinspection RubyResolve
|
82
|
-
hash.each do |group, type_info|
|
83
|
-
type_info.each do |type_name, info|
|
84
|
-
type_key = type_name.to_sym
|
85
|
-
info.symbolize_keys!
|
86
|
-
info[:TYPE] = type_key
|
87
|
-
info[:GROUP] = group.to_sym
|
88
|
-
info[:MIME] = info[:MIME].strip.split(/[\s,]+/).map(&:strip) rescue []
|
89
|
-
info[:EXTENSIONS] = info[:EXTENSIONS].strip.split(/[\s,]+/).map { |v| v.strip } rescue []
|
90
|
-
info[:PUID] = info[:PUID].strip.split(/[\s,]+/).map { |v| v.strip } if info[:PUID]
|
91
|
-
if @types.has_key?(type_key)
|
92
|
-
warn 'Type %s already defined; merging with info from %s.', type_name.to_s, file_or_hash
|
93
|
-
info.merge!(@types[type_key]) do |_,v_new,v_old|
|
94
|
-
case v_old
|
95
|
-
when Array
|
96
|
-
append ? v_old + v_new : v_new + v_old
|
97
|
-
when Hash
|
98
|
-
append ? v_new.merge(v_old) : v_old.merge(v_new)
|
99
|
-
else
|
100
|
-
append ? v_old : v_new
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
@types[type_key] = info
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
protected
|
110
|
-
|
111
|
-
def initialize
|
112
|
-
@types = Hash.new
|
113
|
-
type_database = Libis::Format::Config[:type_database]
|
114
|
-
load_types(type_database)
|
115
|
-
end
|
116
|
-
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|
120
|
-
end
|